CSS选择器、优先级以及!important知识总结

html-css020

CSS选择器、优先级以及!important知识总结,第1张

关于CSS选择器,首先请看这里: CSS 选择器参考手册

通过以上,我们可以将CSS选择器分为以下几种:

<script async src="//jsfiddle.net/hysunny/3gwbeu3v/embed/html,css,result/"></script>

示例:

说明:以下E表示元素,attr表示属性,val表示属性的值。

说明:以下E表示元素

示例:

示例:

示例:

示例:

E:not(s) ,匹配不符合当前选择器的任何元素

示例:

E:target ,匹配文档中特定"id"点击后的效果

示例:

这里我们简单讨论下后代元素选择器和子元素选择器的区别

示例

CSS优先级是指CSS样式在浏览器中被解析的 先后顺序 。

多重样式(Mutiple Styles):如果外部样式、内部样式和内联样式同时应用于同一个元素,就是多重样式的使用情况。

一般情况下,( 外部 样式)External style sheet <( 内部 样式)Internal style sheet <( 内联 样式)Inline style

例外 :如果外部样式放在内部样式的后面,则外部样式将会覆盖内部样式。

示例:

给不同的选择器分配不同的权值

解释:

示例

结果:标签内的数据显示为蓝色。

比较样式的优先级是,只需统计不同选择器的个数,然后与对应的权值相乘即可。根据结果便可得出优先级。

看到这里,有些同学是不是对!important有点迷惑呀 为什么有了它,就优先级最高呐 下面我们再来详细讲一讲!important~

!important 是CSS1就定义的语法,作用是提高指定样式的应用优先权。

语法格式: {cssRule !important} ,即写在定义的最后面,例如: box { color: red !important}

声明了 !important 的样式,具有最高的优先级,相当于写在最下面(最后定义)

IE 6.0 不完全 支持!important

IE支持重定义中的!important,例如:

你将会发现定义了样式 class="yuanxin" 时,在IE下,字体显示为红色(#e00)。

但不支持同一定义中的 !important 。例如:

此时在IE6下不支持,你将会发现定义了样式 class="yuanxin" 时,字体显示为黑色(#000)。

解释

important的样式属性和覆盖它的样式属性单独使用时(不在一个{}里),IE 6.0认为!important优先级较高,否则当含!important的样式属性被同一个{}里的样式覆盖时,IE 6.0认为!important较低!

再举一个例子:

因为IE 6.0一直都不完全支持这个语法,而其他的浏览器都支持。因此我们就可以利用这一点来分别利用!important,我们可以针对IE和非IE浏览器设置不同的样式,只要在非IE浏览器样式的后面加上!important。

完。

总结内容参考以下:

w3school_CSS 选择器参考手册

阮一峰_CSS选择器笔记

css选择器优先级深入理解

CSS 的优先级机制[总结]

十分感谢你们的分享 n(*≧▽≦*)n

注:原文章首发于: CSS选择器、优先级以及!important知识总结 ,现迁移至此。

<script async src="//jsfiddle.net/hysunny/3gwbeu3v/embed/html,css,result/"></script>

分拆纵向独立属性。为元素设置上、下外边距。

分拆横向独立属性。为元素设置上、下外边距。

分拆独立属性。为元素单独设置上、右、下、左4个方向的内边距。

属性值描述:

1.阴影类型:此参数可选,默认的投影方式是外阴影;如果取其唯一值“inset”,就是将外阴影变成内阴影。

2.X-offset:是指阴影水平偏移量,其值可正可负,正值,则阴影在对象的右边,负值,阴影在对象的左边

3.Y-offset:是指阴影的垂直偏移量,其值也可以是正负值,正值,阴影在对象的底部,负值时,阴影在对象的顶部。

4.阴影模糊半径:此参数是可选,只能为正值,如果其值为0时,表示阴影不具有模糊效果,值越大阴影的边缘就越模糊

5.阴影扩展半径:此参数可选,其值可为正负值,正值,则整个阴影都延展扩大,反之,则缩小

6.阴影颜色:此参数可选,不设定任何颜色时,浏览器会取默认色,但各浏览器默认色不一样,特别是在webkit内核下的safari和chrome浏览器将无色,也就是透明,建议不要省略此参数。

注:多层阴影,最内层优先级最高,之后依次降低。使用逗号“,”隔开。

3.border-image-width:定义元素边框图像的厚度。

该属性用于指定使用多厚的边框来承载被裁剪后的图像。

当该属性省略未定义时,因为默认值是 1 ,所以该属性的计算值会是 1 * border-width ,相当于会直接使用 border-width 的定义。

4.border-image-outset:定义边框图像从边框边界向外偏移的距离。

5.border-image-repeat:定义分割图像怎样填充边框图像区域。

2.background-image:定义元素使用的背景图像。

3.background-repeat:定义元素的背景图像如何填充。

4.background-attachment:定义滚动时背景图像相对于谁固定。

5.background-position:指定背景图像在元素中出现的位置。

example:假设要定义背景图像在容器中右下方,并且距离右边和底部各有20px

要注意的是:设置3个或4个值,偏移量前必须有边界关键字。也就是说,形如:10px bottom 20px,这样的参数设置是错误的,因为10px前面没有关键字。

6.background-origin:指定的背景图像计算background-position时的参考原点(位置)。

取值:

border-box:从border区域(含border)开始显示背景图像。

padding-box:从padding区域(含padding)开始显示背景图像。 (默认)

content-box:从content区域开始显示背景图像。

注意,如果设置background-origin后,设置background-position会相对于background-origin设置的位置做参考来偏移背景图,比如设置在border开始显示图片,这是设置background-position:left 10px top 10px是相对于边框进行左边偏移10px上面偏移10px,如果没设置background-origin,默认是相对于padding处进行偏移。

7.background-clip:指定对象的背景图像向外裁剪的区域。

取值:

border-box:从border区域(含border)开始向外裁剪背景。(默认)

padding-box:从padding区域(含padding)开始向外裁剪背景。

content-box:从content区域开始向外裁剪背景。

text:从前景内容的形状(比如文字)作为裁剪区域向外裁剪,如此即可实现使用背景作为填充色之类的遮罩效果。

8.background-size:定义背景图像的尺寸大小