CSS选择器的优先级计算

72 阅读1分钟

一、CSS选择器优先级计算的应用场景

当我们通过不同的选择器选中同一个元素时,并且为相同的样式设置不同的值时,就发生了样式的冲突(到底使用哪一个选择器的样式呢),这个时候就需要看选择器的优先级了。简单来说

行内样式>id选择器>类选择器>元素选择器>通配选择器

但是这样简单的排序是不能解决所有的应用场景的,这个时候就需要来计算不同选择器的权重了

二、选择器权重计算

格式:(a,b,c)

a:id选择器的个数

b:类,伪类,属性选择器的个数

c:元素,伪元素选择器的个数

当我们计算出选择器的权重之后,下一步就是比较哪一个权重更大,更有话语权了

三、选择器权重比较

从a开始比较,当前位的权重胜出,不用比较后面的权重了,如果当前位的权重相同,那么就比较下一位,直到比较完,如果比较完之后还是没有分出胜负,那么就采用后来者居上的原则,也就是后面写的选择器具有更高的优先级

四、特殊情况

1.行内样式大于所有

2.当选择器中的样式值后加了!important之后,这个样式就是最优先的