在CSS(层叠样式表)中,选择器的优先级决定了当多个选择器应用于同一个元素时,哪个样式的规则会被应用。选择器的优先级是通过特定的规则来计算的,这些规则决定了样式声明的权重。以下是CSS选择器优先级的基本规则:
-
重 要性(!important)
如果某个样式声明使用了!important
,那么它将覆盖没有使用!important
的任何规则。例如:
p { color: red !important; }
在这种情况下,即使有其他选择器指定了其他颜色,p
元素的文本颜色也会是红色。
-
内 联样式
直接在HTML元素上使用style
属性定义的样式具有最高的优先级。例如:
<p style="color: blue;">This is a paragraph.</p>
这里的样式优先级高于所有其他CSS规则。
-
ID选择 器
ID选择器的优先级高于类选择器、属性选择器等。例如:
#unique-id { color: green; }
-
类选择 器、伪类选择器和属性选择器
类选择器(.class
)、伪类选择器(如:hover
)和属性选择器(如[type="text"]
)的优先级低于ID选择器,但高于类型选择器和伪元素选择器。例如:
.class-name { color: orange; }
-
标签 选择器和伪元素选择器
类型选择器(如p
、div
)和伪元素选择器(如::before
、::after
)的优先级最低。例如:
p { color: purple; }
计算优先级(Specificity)
CSS选择器的优先级按照以下顺序排列:!important > 内联选择器 > ID选择器 > 类别选择器 > 属性选择器 > 伪类 > 元素选择器 > 通配符选择器 > 继承选择器。
-
4.权重叠加
CSS权重叠加是指当多个CSS声明应用于同一元素时,它们的权重值会叠加,决定最终应用的样式。权重的计算是根据选择器的类型和数量来确定的。
选择器 | 权重计算 |
继承父标签的样式 < * 通配符选择器 | 0,0,0,0 |
标签选择器 | 0,0,0,1 |
类选择器,链接伪类选择器 | 0,0,1,0 |
ID 选择器 | 0,1,0,0 |
标签的行内样式 style 属性 | 1,0,0,0 |
样式后添加 !important | 权重无穷大 |
需要注意的是,不同选择器之间的区别为量级,不存在进位的说法!
css三大特性
层叠性
简单来说,如果两个想通权重的