核心提示:特殊性计算规则为了计算规则的特殊性,给每个选择器都分配一个数字值。然后,讲规则的每个选择器的值加在一起,计算出规则的特殊性。一般情况下,如果一个特定选择器中的选择器数量少于10个,可以以10 为基数计...
特殊性计算规则
为了计算规则的特殊性,给每个选择器都分配一个数字值。然后,讲规则的每个选择器的值加在一起,计算出规则的特殊性。一般情况下,如果一个特定选择器中的选择器数量少于10个,可以以10 为基数计算特殊性。
选择器的特殊性分为4个等级:a、b、c和d,各等级特殊性逐渐降低(即a>b>c>d)。其中,
如果样式是行内样式(),那么a = 1 b等于ID选择器(#tag)的总数 c等于类(.tag)、伪类(a:hover)和属性选择器(a[title])的数量 d等于类型选择器(span)和伪元素选择器(span:before)的数量
根据以上规则,可以计算下表各元素的特殊性
选择器 | 特殊性 | 以10为基数的特殊性 |
---|---|---|
style = “” | 1,0,0,0 | 1000 |
wrapper #content {} | 0,2,0,0 | 200 |
content .dataPoseted {} | 0,1,1,0 | 110 |
p#content | 0,1,0,1 | 101 |
content {} | 0,1,0,0 | 100 |
p.comment .dateposted {} | 0,0,2,1 | 21 |
p.comment {} | 0,0,1,1 | 11 |
p p {} | 0,0,0,2 | 2 |
p {} | 0,0,0,1 | 1 |
由此,可以简单归纳为:用style属性编写的规则总是比其他任何规则特殊;具有ID选择器的规则比没有ID选择器的规则特殊;具有类选择器的规则比只有类型选择器的规则特殊;如果两个规则的特殊性相同,那么后定义的规则优先。