特殊性计算规则
为了计算规则的特殊性,给每个选择器都分配一个数字值。然后,讲规则的每个选择器的值加在一起,计算出规则的特殊性。一般情况下,如果一个特定选择器中的选择器数量少于10个,可以以10 为基数计算特殊性。
选择器的特殊性分为4个等级:a、b、c和d,各等级特殊性逐渐降低(即a>b>c>d)。其中,
- 如果样式是行内样式(
<p style="..."></p>),那么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 |
| div#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 |
| div p {} | 0,0,0,2 | 2 |
| p {} | 0,0,0,1 | 1 |
由此,可以简单归纳为:用style属性编写的规则总是比其他任何规则特殊;具有ID选择器的规则比没有ID选择器的规则特殊;具有类选择器的规则比只有类型选择器的规则特殊;如果两个规则的特殊性相同,那么后定义的规则优先。
本文介绍CSS中选择器特殊性的计算规则及其应用。特殊性决定了样式表中规则的应用优先级,文章详细解释了如何通过不同类型的CSS选择器来计算特殊性,并给出具体示例。
410

被折叠的 条评论
为什么被折叠?



