权重排序:
!Important > 行内样式 > ID 选择器 > 类选择器 /伪类> 标签(元素)/伪元素 > 通配符 > 继承 > 浏览器默认属性
CSS权重选择器优先级计算表格
| 选择器 | 权重 |
|---|---|
| 通配符、继承、浏览器默认属性 | 0,0,0,0 |
| 标签(元素)/伪元素 | 0,0,0,1 |
| 类选择器 /伪类 | 0,0,1,0 |
| ID 选择器 | 0,1,0,0 |
| 行内样式 | 1,0,0,0 |
| !Important | ∞无穷大 |
优先级注意点:
-
权重是由 4 组数字组成,但是不会有进位。
-
可以理解为类选择器永远大于元素选择器, id 选择器永远大于类选择器,以此类推。
-
等级判断从左向右,如果某一位数值相同,则判断下一位数值。
-
可以简单记忆法: 通配符和继承权重为 0, 标签选择器为 1,类(伪类)选择器为 10, id
选择器 100, 行内样式表为 1000, !important 无穷大。
- 继承的权重是 0, 如果该元素没有直接选中,不管父元素权重多高,子元素得到的权
重都是 0。
权重叠加:如果是复合选择器,则会有权重叠加,需要计算权重。
例:
- div ul li ------> 0,0,0,3
行内样式:0
ID 选择器:0
类选择器:0
标签:3
- .nav ul li ------> 0,0,1,2
行内样式:0
ID 选择器:0
类选择器:1
标签:2
- a:hover ------> 0,0,1,1
行内样式:0
ID 选择器:0
伪类选择器:1
标签:1
- .nav a ------> 0,0,1,1
行内样式:0
ID 选择器:0
类选择器:1
标签:1