首先理解为什么要有特殊性,元素在选择的时候有多种选择方法,会出现同一个元素被多个规则选中,所以怎么知道元素对应的哪个规则就使用到了特殊性,也就是选择器的优先级。
特殊性值表述有四个部分 如:0100、0001,0100比0001要大所以优先级高。那我们来看每个选择器对应的值
- ID选择器 ----------0 1 0 0
- 各个类属性值、属性、伪类选择器 ----------0 0 1 0
- 元素、伪元素选择器 ----------0 0 0 1
- 结合符和通配符 ----------0 0 0 0
h1 {color:red} /* 0 0 0 1*/
div p{color:yellow} /* 0 0 0 2*/
#id {color:purple} /* 0 1 0 0*/
div #id *[href] {color:silver} /* 0 1 1 1*/
所以我们比较其值大小就可以知道优先级。内联样式的特殊性值是 1 0 0 0,特殊性高于其他选择器。
同时还存在一个!important重要性声明,这个是没有特殊性值的但是优先级最高。