特指度:
特指度就是权重,浏览器会计算每个规则中选择符的特指度,如果两个或多个属性的声明有冲突,权重最高的胜出;
一个特指度有四部分构成:
序号 | 选择符 | 特指度 |
---|---|---|
0 | 行内样式 | 1,0,0,0 |
1 | ID | 0,1,0,0 |
2 | 类属性、属性选择符、伪类 | 0,0,1,0 |
3 | 元素选择符,伪元素 | 0,0,0,1 |
4 | 通用选择符 | 0,0,0,0 |
5 | 连接符,继承的值 | 无 |
特指度的值是从左向右比较的;
重要性 important
!important始终放到声明末尾的分号之前;重要规则始终胜出;
2、继承
继承指的是某些样式不仅应用到所指的元素上,还应用到元素的后代上;
- 很多属性是不继承的,如边框属性border,边距等;
- 继承的值没有特指度,连零都没有;
3、层叠
CSS采用层叠的机制把样式组合到一起,规则如下:
- 找到匹配特定元素的所有规则
- 按权重排序应用到特定元素的声明上(主要是!important)
- 按来源排序应用到特定元素的声明上(如浏览器自定义)
- 按特指度排序
- 按声明的前后位置应用;