如果我将页面主体的标签的
font-family
设置为font1、font2、font3,然后将font-family
设置为font1、font2、font3,然后将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; }
< p> 繁琐,但这就是 CSS font-family
的工作方式 :)
简短回答:不会
好问题。你在谈论的功能是继承(inheritance)。本质上,如果用户计算机上没有指定的字体,子元素会继承父元素的字体吗?
我找不到任何明确的文档,虽然这个规范可能意味着在这种情况下不会发生继承。因此,为了确定,我使用最新的Firefox稳定版本进行了测试,测试内容如下:
<body>
<p>Hello</p>
</body>
body {font-family: Arial;}
p {font-family: Quill;}
我没有安装Quill,但是我有Arial字体。然而,尽管如此,p元素在默认的衬线字体中呈现,而不是Arial字体。
由于至少有一种主流浏览器以这种方式运行,在确保一致性的情况下,你应该始终使用以下方法:
body {font-family: Arial;}
p {font-family: Quill, Arial;}
再深入思考一下,解决这个问题的一种方法是允许以下操作:
p {font-family: Quill, inherit}
p {font-family: Quill, default}