css选择器的优先级如何计算?

120 阅读2分钟

这是我参与「4月日新计划更文活动」的第17天。

今天带着带着大家一起来看一下css选择器的优先级如何计算哈。

这一部分属于特别基础并且特别重要的知识,

希望大家能够学会。

说到css选择器,

我们常常用到的选择就有id选择器,类选择器,元素选择器,伪类选择器等等。

但是除了上面说的这几个常用的选择器之外,还有一些不是很常见的选择器,希望大家也能知道。

可能面试的时候会考到。

其他选择器还有:

属性选择器 伪类选择器 后代选择器 子元素选择器 相邻兄弟选择器 通用选择器 前缀选择器 后缀选择器 nth-child选择器 nth-of-type选择器 not选择器 :target伪类选择器 :first-child伪类选择器 :last-child伪类选择器 :hover伪类选择器 :focus伪类选择器 :before伪元素选择器 :after伪元素选择器。 层级选择器 兄弟选择器 相对单位选择器(如:rem、em、vh、vw等) 伪元素选择器(如:::before、::after等) 组合选择器 属性值选择器(如:[attribute=value]、[attribute~=value]等) 盒子模型选择器(如::first-line、:first-letter等) 语言选择器(如::lang) 动态伪类选择器(如::active、:visited、:checked等)

后面这些选择器只供了解哈,知道有这么一回事就好了。

那么上面的选择器这么多,我们应该如何计算这些选择器的优先级呢?

一般来说,

css选择器优先级的计算可以用下面的公式来计算

优先级 =(内联样式)+(ID选择器)+(类选择器、属性选择器、伪类选择器)+(元素选择器、伪元素选择器)

更具体的说,内联样式的优先级最高,为1000;

ID选择器的优先级为100;

类选择器、属性选择器和伪类选择器的优先级为10;

元素选择器和伪元素选择器的优先级为1。

如果某个元素同时被多个选择器选中,优先级高的选择器会覆盖优先级低的选择器。

如果两个选择器的优先级相同,则后面的选择器会覆盖前面的选择器。

最后不要忘了,有一些css代码中会给某个属性加上important,这个时候他的样式的优先级是最高的,至高无上的,内联样式都无法撼动他的优先级。

以上就是我今天学习的如何计算css选择器优先级的知识点。

看到掘金上的好文章,如果对你有帮助,顺手点个赞,或者把文章收藏。不用担心找不到了,以后也能经常收到类似好回答,我会持续进行更新。