css深入理解之 border
一 border-width不支持百分比值
1 不符合客观逻辑
2 w3成都一种约定吧
3 边框本身就像是一个包裹内容的界限
类似的还有outline,box-shadow text-shadow均不支持百分比
4 边框宽度的枚举
thin:1px
medium(默认):3px 因为border-style:double这个样式至少需要3px才会有可视化显示效果,
thick:5px
二 border-style类型
1 solid
2 dashed 虚线
虚线在chrome firefox的稀疏密度为3:1 而ie为1:1所以ie中需要与前面相比较密
3 dotted 点线
点线在ie中为圆点,而chrome和firefox为方框,因此在ie中可使用dotted点线方式圆角效果,但是这个圆角很不明显
3 double 双线
使用得比较少,double的计算规则,中间为透明
1px:0+1+0;
2px:1+0+1;
3px:1+1+1;
4px:1+2+1;
5px:2+1+2;
6px:2+2+2;
7px:2+3+2;
8px:3+2+3; 中间为+-1间隔进行,可以看出 double会将边框宽度进行等分,比如border-top:60px double red,那么将会进行这样的拆分,20+20+20 中间为透明也就会看到2跟红色等长线
也就是说双线宽度永远相等,剩余则为中间间隔,
使用double可以实现一些技巧性绘图,且兼容性非常好 如三道横杠
border-top:60px double red;border-bottom:20px solid;
4 inset 内凹
内凹使用非常少,主要用来实现一些有点点质感的样式
5 其他的一些样式一是使用非常少,而是兼容性很差
三 color与border-color
在不显式指定border-color的时候,默认使用color作为边框颜色 如border:1px solid;color:red;这里的边框将显示为红色
使用默认的颜色用途在于只需要改变color时候边框可以与之同步,比如一些使用字图图标的情况下,改变图标颜色,边框也随之改变,如 .box:hover{color:red}
四 border与background定位
1 局限
由于background的定位是相对于边框的左上角,那么要想背景在右边的时候就咋办呢?
那么我们可以将left设置为100%,但是与右边又想要距离,怎么办呢?可以使用border-right:20px solid transparent 右侧具有一个透明20像素的边框就使得背景看起来有一定的间距
五 border与三角图形
1 正三角形
比如一个span:after{width:0px;height:0px; border-width:10px;border:}
六 border透明边框
用途非常广,兼容性非常好,常常用于增加鼠标点击响应区增加,透明但是却占据区域;
1 增加响应区域大小
比如我们有一个16*16的单选框,这个时候响应区域非常小,那么增加透明边框如 border:10px solid transparent;由于边框透明了,要想再次显示边框效果,则使用边框阴影效果
box-shadow,进行边框阴影模拟,阴影内陷即可
2 增减可视渲染区域
比如我们想要一张图片改变颜色,可以使用将元素进行滤镜投影,而投影又是可以使用颜色设置,那么我们就可以将元素本身因此,但是投影并不隐藏,此时只有使用透明边框方式,看不见元素本身,因而是投影也
得到显示
如icon{position:relative left -20px;border-right:20px solid transparent;fiter:drop-shadow(20px o #ff0000;)}
七 border在布局中的应用
css深入理解之 border的更多相关文章
- css深入理解之border
1. border-width border-width不支持百分比,类似的还有outline,box-shadow,text-shadow等 border-width支持关键字:thin(1px, ...
- CSS深入理解学习笔记之absolute
1.absolute和float 拥有相同的特性表现: ①包裹性(容器应用之后,可以包裹里面的内容): <!doctype html> <html> <head> ...
- [转]图解CSS的padding,margin,border属性(详细介绍及举例说明)
图解CSS的padding,margin,border属性 W3C组织建议把所有网页上的对像都放在一个盒(box)中,设计师可以通过创建定义来控制这个盒的属性,这些对像包括段落.列表.标题.图片以及层 ...
- CSS深入理解之absolute(HTML/CSS)
absolute和float是同父异母的兄弟,因为它们具有相同点:包裹性与破坏性 absolute的特点 1.独立的,并且可以摆脱overflow的限制,无论是滚动还是隐藏: 2.无依赖,不受rela ...
- 图解CSS的padding,margin,border属性(详细介绍及举例说明)
图解CSS的padding,margin,border属性 W3C组织建议把所有网页上的对像都放在一个盒(box)中,设计师可以通过创建定义来控制这个盒的属性,这些对像包括段落.列表.标题.图片以及层 ...
- CSS深入理解之overflow
CSS深入理解之overflow 前言 这是跟着张鑫旭重学CSS的overflow篇 基本属性 overflow有以下五个基本属性: 1.visible : 默认值,具体表现为,应用此属性后,子元素超 ...
- CSS深入理解之line-height
以下文字整理自慕课网——张鑫旭的<CSS深入理解之line-height>. line-height,又称行高,指的是两行文字基线之间的距离,又可以称为这行文字所占的高度. 定义三问: 什 ...
- CSS深入理解学习笔记之border
1.border-width border-width为何不支持百分比:语义和使用场景决定的,现实中各种边框本身的概念就不存在百分比的使用方法. border-width支持关键字:thin.medi ...
- 【转】CSS深入理解流体特性和BFC特性下多栏自适应布局
这篇文章发布于 2015年02月12日,星期四,23:36,归类于 css相关. 阅读 30873 次, 今日 63 次 by zhangxinxu from http://www.zhangxinx ...
随机推荐
- Spark运行模式_基于YARN的Resource Manager的Custer模式(集群)
使用如下命令执行应用程序: 和"基于YARN的Resource Manager的Client模式(集群)"运行模式,区别如下: 在Resource Manager端提交应用程序,会 ...
- STM32 uart 单线半双工模式(cube版本)
STM32 uart 单线半双工模式(cube版本) 1.引言 在某些场合下需要进行三线制串口通信(信号线只有一根),这就要求进行单线半双工的模式进行通信.在这种情况进行数据协议传输的过程中,信号端需 ...
- Java学习笔记二十三:Java的继承初始化顺序
Java的继承初始化顺序 当使用继承这个特性时,程序是如何执行的: 继承的初始化顺序 1.初始化父类再初始子类 2.先执行初始化对象中属性,再执行构造方法中的初始化 当使用继承这个特性时,程序是如何执 ...
- python学习笔记~INI、REG文件读取函数(自动修复)
引入configparser,直接read整个INI文件,再调用get即可.但需要注意的是,如果INI文件本身不太规范,就会报各种错,而这又常常不可避免的.本文自定义函数通过try...except. ...
- vim 粘贴文本,格式混乱 tab
粘贴的代码如上.修改方法: 方法一: set paste 贴完后,设置 set nopaste 恢复代码缩进. 方法二:修改配置文件 vim /etc/vim/vimrc set pastetoggl ...
- EEPROM读写学习笔记与I2C总线(二)
无论任何电子产品都会涉及到数据的产生与数据的保存,这个数据可能并不是用来长久保存,只是在运行程序才会用到,有些数据体量较大对于获取时效性并不太强,各种各样的数据也就有不同的存储载体,这次在EEPROM ...
- 十分钟部署Anemometer作为Mysql慢查询可视化系统
前言 采用Anemometer将Mysql慢查询日志可视化,可以更便捷的查询慢查询日志,并根据时间戳进行历史查询.如下是单机版Anemometer部署的演示,实际应用中,为安全起见,建议把anemom ...
- TableView滑动时候出现的卡顿现象
分析 UITableView是UIScrollView的子类,因此它可以自动响应滚动事件(一般为上下滚动). 它内部包含0到多个UITableViewCell对象,每个table cell展示各自的 ...
- quartz与Spring整合
1.创建maven工程,导入spring和quartz相关依赖 2.创建任务类 3.在spring配置文件中配置任务类 4.在spring配置文件中配置JobDetail 5.在spring配置文件中 ...
- macOS 10.13 High Sierra PHP开发环境配置
命令:sudo rm /usr/local/mysql sudo rm -rf /usr/local/mysql* sudo rm -rf /Library/StartupItems/MySQLCOM ...