CSS选择器及优先级顺序
CSS(层叠样式表)中有多种选择器,每种选择器都有不同的优先级。优先级决定了当多个样式规则应用于同一个元素时,哪个规则会生效。以下是常见的CSS选择器及其优先级顺序:
1. 通用选择器
*- 优先级:0
2. 元素选择器
div,p,h1,span,a, 等等- 优先级:1
3. 类选择器
.class- 优先级:10
4. 属性选择器
[type="text"],[href],[class~="example"], 等等- 优先级:10
5. 伪类选择器
:hover,:focus,:nth-child(n),:first-child, 等等- 优先级:10
6. ID选择器
#id- 优先级:100
7. 内联样式
<div style="color: red;">- 优先级:1000
8. !important
color: red !important;- 优先级:最高,覆盖所有其他规则
优先级计算规则
优先级是一个由四个部分组成的权重值:
- 内联样式:1,0,0,0
- ID选择器:0,1,0,0
- 类选择器、属性选择器、伪类选择器:0,0,1,0
- 元素选择器、伪元素选择器:0,0,0,1
- 通用选择器:0,0,0,0
当多个选择器应用于同一个元素时,优先级高的规则会覆盖优先级低的规则。如果优先级相同,则后定义的规则会覆盖先定义的规则。
示例
/* 优先级:0,0,0,1 */
div {
color: blue;
}
/* 优先级:0,0,1,0 */
.example {
color: green;
}
/* 优先级:0,1,0,0 */
#unique {
color: red;
}
/* 优先级:1,0,0,0 */
<div style="color: yellow;">在这个例子中,#unique 的优先级最高,其次是 .example,然后是 div。如果元素同时有 id="unique" 和 class="example",那么 color: red; 会生效。
总结
- !important 优先级最高,覆盖所有其他规则。
- 内联样式 优先级次高。
- ID选择器 优先级高于类选择器、属性选择器和伪类选择器。
- 类选择器、属性选择器、伪类选择器 优先级高于元素选择器。
- 元素选择器 优先级最低。