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}

ul ol li .red {
    ...
}

按照这个结算方式,下面的计算结果为: {0, 1, 0, 0}

#red {

}

我们的比较优先级的方式是从A到D去比较值的大小,A、B、C、D权重从左到右,依次减小。判断优先级时,从左到右,一一比较,直到比较出最大值,即可停止。

比如第二个例子的B与第一个例子的B相比,1>0,接下来就不需要比较了,第二个选择器的优先级更高。

发布了229 篇原创文章 · 获赞 80 · 访问量 42万+

猜你喜欢

转载自blog.csdn.net/qq_34629352/article/details/105005198
今日推荐