浏览器字体默认

问题描述:

说如果我将页面主体的font-family设置为font1,font2,font3,然后将h1标记的font family设置为font4,font5。如果未安装字体4和5,浏览器在使用浏览器默认字体之前是否会尝试字体1,2和3?浏览器字体默认

不,因为当您指定font-family时,字体堆栈不会从父元素继承,然后添加到。你给它一个独立于其父元素的全新的字体堆栈。

如果您希望浏览器使用前三种字体为<h1>,你需要指定:

body { font-family: font1, font2, font3; } 
h1 { font-family: font4, font5, font1, font2, font3; } 

繁琐,但是这是怎么CSS font-family作品:)

+0

谢谢。耻辱它的工作原理,会节省一些麻烦。 – Ryan 2010-09-08 09:43:55

nope。它将默认为浏览器默认值。

答案很简单:没有

好问题。你正在谈论的功能被称为继承。从本质上讲,如果其用户的计算机上未安装其指定的字体系列,则子元素是否会继承父级的字体系列。

我找不到任何明确的文档,虽然this specification可能被认为意味着在这种情况下不会发生继承。因此,要确保,我测试了Firefox的最新的稳定版本有以下几点:

<body> 
    <p>Hello</p> 
</body> 

body {font-family: Arial;} 
p {font-family: Quill;} 

我没有安装奎尔,但我有宋体。但是,尽管如此,p元素却以默认的serif字体呈现,而不是Arial。

由于存在功能以这种方式,为了保证一致性,至少有一个主要的浏览器,你应该总是用这个来代替:

body {font-family: Arial;} 
p {font-family: Quill, Arial;} 

更多地考虑这一点,一个方法来解决,这将是允许以下内容:

p {font-family: Quill, inherit} 
p {font-family: Quill, default} 

第二条规则基本上是浏览器目前所做的,但只是隐含的。如果CSS允许我们明确指定最后一个属性,我们可以改变这种行为。不幸的是,这目前不起作用。任何人都知道如何向w3C提交建议?

+0

+1进行测试。 – BoltClock 2010-09-08 09:49:18