![](http://a.nync.com/.jpg!40)
![](http://static.nync.com/main/images/cungg/cq25-min.png)
一个元素可以通过多种方式获取,那么通过多种方式设置的样式,哪一个会生效?
l特殊性
所匹配的元素只能是某一种颜色, 那么怎么知道哪一个规则更强?
每个选择器都存在特殊性(specificity). 如果一个元素有两个或多个冲突的声明, 那么有最高特殊性的声明就会胜出.
l特殊性计算规则
选择器的特殊性由选择器本身的组件确定.
特殊性值表述为4个部分, 如: 0, 0, 0, 0
一个选择器的具体特殊性确定如下:
对于选择器中的每个id属性值, 加 0, 1, 0, 0.
对于选择器中的每个类属性值, 加 0, 0, 1, 0.
对于选择器中的每个元素和每个伪元素, 加 0, 0, 0, 1
通配符选择器的特殊性为零, 就是: 0, 0, 0, 0
最终选择器对应值越大,特殊性越高,优先级也就越高。
l内联样式特殊性
为什么之前的特殊性都是以0开头?
第一个值是为内联样式保留的, 它比所有其他声明的特殊性都高
l!important
如果某个样式非常重要, 需要超过所有其他样式, 那么可以在声明的结束分号之前插入!important来标注. 这种声明称为重要声明.
每个重要的样式都要有它自己的!important标志
!important总是放在声明的最后, 即分号前面. 否则声明将无效
多个!improtant冲突,则进行特殊性比较
当重要声明与内联样式发生冲突时,依然是重要声明优先级高