6

链接在这里:

http://jsfiddle.net/LDEt6/

第一个 CSS 规则将字体系列'Helvetica Neue', Helvetica, Arial, sans-serif;设置为以下 CSS 中的所有其他字体设置,只需声明“继承”。在 Chrome 21 中,我得到“Times”作为计算的字体系列,而在 Firefox 中,我得到了“serif” '。我错过了什么?

谢谢!

4

2 回答 2

8

首先我们有:

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

酷,没关系。但是我们有:

html, body, input, button, <snipped...> {
     font: inherit;
}

所以font被这条规则覆盖,这条规则也适用于身体,现在是inherit.

那么继承有什么作用呢?它说“使用分配给我的父元素的样式属性”。在这种情况下,元素的父<body>元素是<html>没有父元素的。所以根本没有指定的字体系列,所以什么都不能继承。

inherit不做的是使用先前为该元素定义的。它继承自父母,而不是以前应用的样式。inherit是关于 HTML 结构,而不是 CSS 结构。

最后,您将整个 Universe 设置为从其父代(包括所有父代)继承字体。因此,您永远不会真正找到具有真正设置字体的父级。取而代之的是浏览器应用它的默认字体,这样它就可以渲染一些东西

如果您将body字体规则移到那里的巨型重置规则之后,它应该开始工作。然后字体将一直继承到 body 标签,它现在有一个真正的字体。

于 2012-09-20T23:53:57.600 回答
0

这里:http: //jsfiddle.net/LDEt6/6/

在一大堆选择器中,您重新声明bodyas font: inherit

于 2012-09-20T23:47:02.413 回答