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 的权重 从左向右 依次减小。依次相比,知道比较最大的值,即可停止。

  所以第二个选择器的权重更高

原文地址:https://www.cnblogs.com/mwxz/p/14109704.html