样式表层叠 Stylesheets Cascade
元素会被多个样式一层层作用
- 没有冲突时样式层叠
- 发生冲突时根据权重决定使用哪种样式,相同权重的规则应用最后出现的
- 可以使用
!important
强制提升某个规则的权限
h2 {
color: red !important;
}
各类元素的权重:
规则 | 权重 |
---|---|
ID | 0100 |
class、类属性值 | 0010 |
标签、伪元素 | 0001 |
* | 0000 |
行内样式 | 1000 |
注: 继承没有权重,通配符和继承会优先选通配符
继承 Inheritance
当元素的一个继承属性 (inherited property)没有指定值时,则取父元素的同属性的计算值。文档根元素取该属性的概述中给定的初始值。
某些样式不会被继承,如边框、高度等。称为非继承属性(在Mozilla code 里有时称之为reset property )
举个例子如果你在一个元素上设置
width
50% ,所有的后代不会是父元素的宽度的50% 。如果这个也可以继承的话,CSS就会很难使用了!当元素的一个非继承属性没有指定值时,则取属性的初始值
在css中,每个CSS 属性定义的概述都指出了这个属性是默认继承的("Inherited: Yes") 还是默认不继承的("Inherited: no")。