计算指定选择器的优先级: 重新认识CSS的权重
CSS 选择器类型 | 权重(每个加) |
important | 加1,0,0,0 |
ID 选择器 (如 #id) | 加0,1,0,0 |
Class 类选择符(如 .class)、每个属性选择符(如 [attribute=])、每个伪类(如 :hover) | 加0,0,1,0 |
元素选择符(如p)或伪元素选择符(如 :firstchild)等 | 加0,0,0,1 |
其它选择符包括全局选择符*,不过这也是一种specificity。 | 加0,0,0,0,相当于没加 |
比较同一级别的个数,数量多的优先级高,如果相同即比较下一级别的个数。
至于各级别的优先级,就是:
important > 内联 > ID > 类 > 标签 | 伪类 | 属性选择 > 伪对象 > 继承 > 通配符 通配符 > 继承
这也就解释了为什么11个标签的定义会比不上1个类的定义,1个类加11个标签会比不上2个类的权重高