Logo
Section 1 / 2

级联与继承

回顾CSS的两个核心概念:层叠和继承。

导入

级联与继承

回顾CSS的两个核心概念:层叠和继承。

什么是层叠?

层叠是 CSS 中的“C”,因此它处于 CSS 的核心位置。层叠算法决定了应用于页面元素的样式属性。

这一决定基于继承、特异性、重要性以及规则顺序。
层叠还确保了不会出现冲突。当我们为同一个元素的同一属性设置了多个 CSS 规则时,层叠机制会决定最终应用哪一条规则。

因此,在理解层叠的基础上,我们来逐一了解它做出这些决策所遵循的规则,首先从继承开始。

继承

CSS 的 继承 是在属性层面起作用的。当我们为某个选择器设置 CSS 属性时,这些属性要么被其所有子元素继承,要么不被继承?这取决于具体的属性。有些属性显然可以继承,而另一些则不能。

在处理字体时,我们无需为页面上的每个元素都单独设置 font-family 或 font-size 样式。只需在 body 标签上设置一次,所有子元素都会自动继承这些样式。

继承使我们的 CSS 编写更加简洁,减少了重复代码。因此,我们不必在每个子元素中显式地设置每一个属性。

强制继承

如果某个属性默认不可继承,我们可以强制其子元素继承该属性。在子选择器中,将该属性设置为 inherit。

例如:

1body { 2 background-color: red; 3} 4p { 5 background-color: inherit; 6}

我们的网页 <body> 被赋予了红色背景。通常情况下,其他元素不会继承背景属性。通过使用 background-color: inherit,我们强制让 <p> 元素继承该背景。

避免继承

反过来也是可行的。使用 revert 关键字,可以将属性值回滚为浏览器(用户代理)样式表中定义的默认值,就好像我们从未为它设置过样式一样。

例如:

1body { 2 background-color: red; 3} 4p { 5 background-color: revert; 6}

在这里,借助 background-color: revert,我们的 <p> 元素恢复到其默认状态。

示例

No configuration found for ID: d3ec03bfac691a8a990520cdd569454c8a19f410ca1bba4c11de912e926d14d9

initial 和 unset 关键字

我们还可以使用 initial 和 unset 关键字。

initial 关键字将 CSS 属性值设置为其规范中定义的默认值。

unset 关键字则根据属性是否可继承来决定:如果该属性可继承,则使用其继承值;如果不可继承,则使用其初始值。

示例

No configuration found for ID: e5bb79a7214fdf8824857197e56181a4783b1861139b53477f2f62042d0930d1

CSS 选择器

具体性