CSS继承的概述

如何在Web文档中使用CSS继承

用CSS设计网站的一个重要部分是理解继承的概念。

CSS继承由所使用的属性的样式自动定义。 当您查找样式属性background-color时,您会看到标题为“继承”的部分。 如果你像大多数网页设计师一样,你忽略了这个部分,但它确实起到了一定的作用。

什么是CSS继承?

HTML文档中的每个元素都是树的一部分,除了最初的元素之外的每个元素都有一个包含它的父元素。 如果属性是可以继承的属性,则无论适用于该父元素的样式都可以应用于其中包含的元素。

例如,下面的这个HTML代码有一个H1标签包含一个EM标签:

这是一个 Big 标题

EM元素是H1元素的子元素,并且继承的H1上的所有样式也将传递到EM文本。 例如:

h1 {font-size:2em; }

由于font-size属性是继承的,所以“Big”(即EM标签内包含的内容)的文本将与H1的其余部分具有相同的大小。 这是因为它继承了CSS属性中设置的值。

如何使用CSS继承

使用它的最简单的方法是熟悉并且不继承的CSS属性 。 如果该属性是继承的,那么您知道该值对于文档中的每个子元素都将保持不变。

使用它的最好方法是在一个非常高级的元素上设置你的基本样式,比如BODY。 如果您将font-family设置为body属性,那么由于继承,整个文档将保持相同的font-family。 这实际上会使更小的样式表更易于管理,因为总体样式更少。 例如:

body {font-family:Arial,sans-serif; }

使用继承样式值

每个CSS属性都包含值“inherit”作为可能的选项。 这告诉Web浏览器,即使该属性通常不会被继承,它也应该具有与父项相同的值。 如果您设置了诸如未被继承的保证金之类的样式,则可以在后续属性上使用继承值来为它们提供与父级相同的保证金。 例如:

身体{margin:1em; } p {margin:inherit; }

继承使用计算值

这对于使用长度的字体大小这样的继承很重要。 计算值是一个相对于网页上其他值的值。

如果您在BODY元素上设置1em的字体大小,则整个页面的大小不会全部为1em。 这是因为诸如标题(H1-H6)和其他元素 (某些浏览器计算表属性的方式不同)等元素在Web浏览器中具有相对大小。 在没有其他字体大小信息的情况下,Web浏览器将始终使H1标题成为页面上最大的文本,然后是H2等。 当您将BODY元素设置为特定的字体大小时,则将其用作“平均”字体大小,并从中计算标题元素。

关于继承和背景属性的一个注记

列出的许多样式没有在W3C的CSS 2中继承,但Web浏览器仍然继承这些值。 例如,如果您编写了以下HTML和CSS: