目录
specificity用一个四位的数 字串(CSS2是三位)来表示,更像四个级别,值从左到右,左面的最大,一级大于一级,数位之间没有进制,级别之间不可超越。
CSS优先级算法:
CSS优先级包含四个级别(行内选择符、ID选择符、类选择符、元素选择符)及各级别出现次数(根据次数计算优先级)。最后把这些值加起来,再就是当前元素的权重了。
0,0,0,0 | |
---|---|
每个元素(标签)贡献值为 | 0,0,0,1 |
每个类,伪类贡献值为 | 0,0,1,0 |
每个ID贡献值为 | 0,1,0,0 |
每个行内样式贡献值 | 1,0,0,0 |
每个!important贡献值 | ∞ 无穷大 |
比如的例子:
div ul li ——> 0,0,0,3
.nav ul li ——> 0,0,1,2
a:hover —–—> 0,0,1,1
.nav a ——> 0,0,1,1
#nav p —–> 0,1,0,1
注意:
1.数位之间没有进制 比如说: 0,0,0,5 + 0,0,0,5 =0,0,0,10 而不是 0,0, 1, 0, 所以不会存在10个div能赶上一个类选择器的情况。
2. 继承的 权重是 0
总结:
1.在权重小的选择器里加上!important能使权重变最大![!important是无穷大,不要轻易使用,绕过在开发中有多个!important,只能用同等样式,就近原则来提升权重!]
2.同等样式权重就是同样的权重越靠近body的代码,权重越大,越靠body远的权重越小!
3.最低权重 * [星号]的贡献值,它的权重0.0.0.0
4.继承权重为0–等于是说继承没得权重