为什么font-family没有在此按钮中正确级联?

stu*_*kid 6 css fonts

链接在这里:

http://jsfiddle.net/LDEt6/

第一个CSS规则设置字体系列'Helvetica Neue', Helvetica, Arial, sans-serif;和下面的CSS中的所有其他字体设置只是在Chrome 21中声明'inherit'..然而我得到"Times"作为计算字体系列而在Firefox中我得到'serif ".我错过了什么?

谢谢!

Ale*_*yne 8

首先我们有:

body {
     font-family : 'Helvetica Neue', Helvetica, Arial, sans-serif;
}
Run Code Online (Sandbox Code Playgroud)

很酷,很好.但后来我们有:

html, body, input, button, <snipped...> {
     font: inherit;
}
Run Code Online (Sandbox Code Playgroud)

因此font,这个适用于身体的规则也会被覆盖,现在就是这样inherit.

那么继承是做什么的呢?它说"使用分配给我的父元素的样式属性".在这种情况下,<body>元素的父元素<html>没有父元素.因此根本没有指定的字体系列,因此没有任何东西可以继承.

什么inherit不做,要做的就是使用预先定义的值该元素.它继承自父母,而不是之前应用的风格.inherit是关于HTML结构,而不是CSS结构.

最后,将整个Universe设置为从其父级继承字体,包括所有父级.因此,您实际上从未找到具有真实设置字体的父级.相反,浏览器应用其默认字体,只是它可以渲染一些东西.

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