为何存在
这是高效率书写样式与保持其一致性的一种解决方案,不必书写每个DOM元素的样式,允许子元素自动地获取其父元素的某些样式属性
组成部分
- DOM树:继承的结构基础
- 可继承属性:这些属性可以被继承,一般为颜色,字体相关
- 常见例子:
color,font-family,font-size,font-weight,line-height,text-align,list-style。
- 常见例子:
- 不可继承属性:这些属性不可被继承,一般与长宽,尺寸,位置相关
- 常见例子:
width,height,padding,margin,border,background-color。
- 常见例子:
- 继承控制关键字:几个特殊的CSS属性值,允许我们精确的控制继承行为
inherit: 强制继承。可以用于一个不可继承的属性,让它强行从父元素那里获取值。initial: 重置为初始值。让属性恢复到 CSS 规范定义的默认值,无视任何继承。unset: “不设定”。如果该属性默认是可继承的,unset的效果就等同于inherit;如果该属性默认是不可继承的,unset的效果就等同于initial。它是一种智能的“重置”。
运作机制
对于一个可继承属性,以下为继承的运作流程
- 首先,检查是否有直接应用到该元素的规则(比如
p { color: red; })。如果有,则使用该规则(这是“级联”胜出)。 - 如果没有直接规则,浏览器就会查看其直接父元素上该属性的计算值,并使用那个值。
- 如果父元素也没有,就继续向上查找,直到
<html>根元素。 - 如果到根元素都没有找到,则使用该属性的
initial值。