CSS选择器的优先级
css选择器的优先级是:内联 > ID选择器 > 类选择器 > 标签选择器。
如果到具体的计算层面,那么优先级是由 {A, B, C, D}的指来决定的,它的计算规则如下:
- A的值等于 1 的前提是存在内联样式,否则 A = 0;
- B的值等于 ID 选择器 出现的次数
- C的值等于 类选择器 和 属性选择器 和 伪类 出现的总次数
- D的值等于标签选择器 和 伪元素 出现的总次数
例如:
下面的选择器不存在内联选择器,它不存在内联样式,所以A = 0,不存在 ID 选择器, B = 0,存在一个类选择器,C = 1,存在三个标签选择器,D = 3,那么最终计算结果为{0, 0, 1, 3}
div p span .red{
}
同上的计算方法,下面的选择器计算的值为{0, 1, 0, 0}
#red{
}
按照 从左向右 的方式去比较值得大小。A, B, C, D 的权重 从左向右 依次减小。依次相比,知道比较最大的值,即可停止。
所以第二个选择器的权重更高