链接在这里:
第一个 CSS 规则将字体系列'Helvetica Neue', Helvetica, Arial, sans-serif;
设置为以下 CSS 中的所有其他字体设置,只需声明“继承”。在 Chrome 21 中,我得到“Times”作为计算的字体系列,而在 Firefox 中,我得到了“serif” '。我错过了什么?
谢谢!
链接在这里:
第一个 CSS 规则将字体系列'Helvetica Neue', Helvetica, Arial, sans-serif;
设置为以下 CSS 中的所有其他字体设置,只需声明“继承”。在 Chrome 21 中,我得到“Times”作为计算的字体系列,而在 Firefox 中,我得到了“serif” '。我错过了什么?
谢谢!
首先我们有:
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 标签,它现在有一个真正的字体。
这里:http: //jsfiddle.net/LDEt6/6/
在一大堆选择器中,您重新声明body
as font: inherit
。