下面我们具体讲一讲怎么计算选择符的特指度。首先,有一个简单的记分规则,即
对每个选择符都要按下面的“ICE”公式计算三个值:
I - C - E
ICE 并非真正的三位数, 只不过大多情况下把结果看成一个三位数没有问题, 三位数
最大的胜出。但是,千万得知道 0-1-12与 0-2-0相比,仍然是 0-2-0的特指度更高。
三个字母间的短横线是分隔符,并非减号。针对这个公式的计分办法如下:
1. 选择符中有一个 ID,就在 I的位置上加 1;
2. 选择符中有一个类,就在 C的位置上加 1;
3. 选择符中有一个元素(标签)名,就在 E的位置上加 1;
4. 得到一个三位数。
好了,下面通过几个例子来理解特指度。
P 0-0-1 特指度=1
p.largetext 0-1-1 特指度=11
p#largetext 1-0-1 特指度=101
body p#largetext 1-0-2 特指度=102
body p#largetext ul.mylist 1-1-3 特指度=113
body p#largetext ul.mylist li 1-1-4 特指度=114
在此,每个选择符都比前一个选择符的特指度更高。
层叠规则四:顺序决定权重。如果两条规则都影响某元素的同一个属性,而且它们
的特指度也相同,则位置最靠下(或后声明)的规则胜出。