css outline:定义和用法。
outline-style 属性用于设置元素的整个轮廓的样式.样式不能是 none,否则轮廓不会出现。
outline (轮廓)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用.outline 属性设置元素周围的轮廓线。
注释:请始终在 outline-color 属性之前声明 outline-style 属性.元素只有获得轮廓以后才能改变其轮廓的颜色。
注释:轮廓线不会占据空间,也不一定是矩形。默认值:none。
1.border设置元素主要的边框属性,包括border-width、border-style、border-color,可缺省,无固定顺序。
e.g.
[css] view plaincopy
border: red 10px solid
border: 5px blue
border-style
统一设置元素各边框的格式,按照CSS顺序规则。可取的值如下表所示:
CSS顺序规则:当值有4个时,依次按照上、右、下、左设置;当值有3个时,依次按照上、左右、下设置;当值有2个时,依次按照上下、左右设置;当值只有1个时,则为4个方向设置为相同的值。以本属性为例:
[css] view plaincopy
border-style: soliddotted dashed double
/*
上边框为实线
右边框为点状
下边框为虚线
左边框为双线
*/
border-style: solid dotteddashed
/*
上边框为实线
左右边框为点状
下边框为虚线
*/
border-style: soliddotted
/*
上下边框为实线
左右边框为点状
*/
border-style: solid
/*
4个方向的边框都是实线
*/
border-style的默认值为border-style:none。
border-width
统一设置元素各边框的宽度,按照CSS顺序规则。只有当border-style不为none时才有效。不能设置为负值。值可以是thin(细)、medium(中等)、thick(粗),也可以是数值。默认为border-width: medium。
border-color
统一设置元素的各边框颜色,按照CSS顺序规则。当border-style为none或hidden时失效,所以在设置边框颜色前需要保证border-style的值不为none、hidden。值可以是任意CSS支持的颜色值。默认为border-color: transparent。
border-top、border-right、border-bottom、border-left
设置元素的上/右/下/左边框的主要属性,包括border-***-style、border-***-color、border-***-width,可缺省,无固定顺序。
border-top-style、border-right-style、border-bottom-style、border-left-style
设置元素上/右/下/左边框的样式,取值与border-style相同,默认为none。
border-top-width、border-right- width、border-bottom-width、border-left- width
设置元素上/右/下/左边框的宽度,取值与border-width相同。只有当border-***-style不为none时才有效,不能为负值,默认为medium。
border-top-color、border-right- color、border-bottom-color、border-left- color
设置元素上/右/下/左边框的颜色,取值与border-color相同。只有当border-***-style不为none和hidden时才有效。默认为transparent。
2.outline(轮廓)
在元素边框边缘的外围绘制一条包围元素的线,包括outline-color、outline-style、outline-width三个子属性的设置,可缺省,无固定顺序。轮廓不占据页面空间,也不一定是矩形。
除了IE以外的浏览器都直接支持outline。只有规定了!DOCUMENT之后的IE8以上版本的浏览器才支持outline。
e.g.
[css] view plaincopy
outline: solid black
outline: dotted thin #0000ff
outline-style
设置元素轮廓的格式,其取值与border-style类似,但没有hidden值。默认为none,无轮廓。
outline-width
设置元素轮廓的宽度,其取值与border-width类似。只有当outline-style不为none时才有效。默认为medium。
outline-color
设置元素轮廓的颜色,其取值与border-color类似。只有当outline-style不为none时才有效。默认为transparent。
总结:这两者的区别有:
1.outline是不占空间的,既不会增加额外的width或者height
2.outline有可能是非矩形的
假设我们的单标签是一个 div :
定义如下通用 CSS :
盒阴影 box-shadow 大部分人都只是用了生成阴影,其实阴影可以有多重阴影、单侧阴影、阴影不可以不虚化,这就需要去了解一下 box-shaodw 的每一个参数具体作用
盒阴影还有一个参数 inset ,用于设置内阴影,也可以完成:
drop-shadow 是 CSS3 新增滤镜 filter 中的其中一个滤镜,也可以生成阴影,不过它的数值参数个数只有 3 个,比之 box-shadow 少一个
灵活使用 CSS3 的渐变可以完成大量想不到的图形,CSS3 的渐变简单而言分为线性渐变和径向渐变,使用线性渐变实现:
这个用的比较少,outline (轮廓)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。这个方法算是下下之选。
这个方法由 小火柴的蓝色理想 提供,通过改变滚动条样式实现:
抛开实用性,仅仅是模拟出这个样式的话,这个方法真的让人眼前一亮。
上述就是想到的 8 种方法,不排除有没想到的,希望有其他的方法可以在评论中提出,具体 8 种实现可以戳这里看看:
codepen-单标签左边竖条的实现方式