最近准备校招生的培训材料,关于CSS的权重计算规则,正好梳理了一下,顺便整理分享出来。
规则
CSS的权重计算有如下几类:
类型 | 权值 |
---|---|
第一等:!important,优先级最高 | 10000 |
第二等:内联选择器,如style=“” | 1000 |
第三等:ID选择器,如#container | 0100 |
第四等:类、伪类、属性选择器,权值0010 | 0010 |
第五等:元素选择器,如div p,权值0001 | 0001 |
第六等:通配符,子选择器,相邻选择器 | 0000 |
第七等:继承样式无权值 | 无 |
!important
> 行内样式
> ID选择器
> 类选择器 | 属性选择器 | 伪类选择器
> 元素选择器
> 通配符
> 继承样式
样例
Selector | 千位 | 百位 | 十位 | 个位 | 总计 |
---|---|---|---|---|---|
h1 | 0 | 0 | 0 | 1 | 0001 |
h1 + p::first-letter | 0 | 0 | 0 | 3 | 0003 |
li > a[href*=”en-US”] > .inline-warning | 0 | 0 | 2 | 2 | 0022 |
#identifier | 0 | 1 | 0 | 0 | 0100 |
No selector, with a rule inside an element’s style attribute | 1 | 0 | 0 | 0 | 1000 |
备注:从上面的图以及表格样例可以看出具体的计算规则
相关材料
- https://developer.mozilla.org/zh-CN/docs/Web/CSS/Specificity
- https://www.html.cn/qa/css3/16549.html
- https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance#specificity_2
- https://specifishity.com/