我的问题没有任何代码。所以请不要问我。 这是一个相当丰富的问题。字体家族规则及其解释
我们都知道的CSS字体家庭的规则。防爆
h1{font-family:"Times New Roman", Times, serif;}
现在我明白了申报FONT-FAMILY的原因是柜面的浏览器无法找到它会切换到第二个第一字体。但是在什么情况下会发生这种情况。字体的失败与最终用户机器上安装的字体有关吗?或者某些浏览器不支持特定的字体?
我的问题没有任何代码。所以请不要问我。 这是一个相当丰富的问题。字体家族规则及其解释
我们都知道的CSS字体家庭的规则。防爆
h1{font-family:"Times New Roman", Times, serif;}
现在我明白了申报FONT-FAMILY的原因是柜面的浏览器无法找到它会切换到第二个第一字体。但是在什么情况下会发生这种情况。字体的失败与最终用户机器上安装的字体有关吗?或者某些浏览器不支持特定的字体?
正如你所说,答案是YES,如果某些字体或其他字体无法加载,则上述声明将用作回退。让我解释一下如何。
让我们稍微修改您的声明。假设我们有一个Web字体和两个系统字体,这样的声明是这样
h1 {
font-family: 'Open Sans', Arial, Helvetica;
}
在这里,我们从Google Web Fonts
获取的Open Sans
字体。所以在这里,假设谷歌服务器停机或说用户的浏览器太旧,了解font-face
或Web Fonts
,当我的网页是由特定用户的要求,Open Sans
字体将无法呈现,因为它没有下载,因为服务器关闭,在这种情况下,CSS将使用Arial
,现在如果用户系统没有Arial
字体,则会应用Helvetica
。
如果用户没有字体,比网站将呈现用户设置浏览器默认字体。
最明显的情况是,缺少前字体的系统。在不太可能的情况下,Times New Roman缺失,Times会被尝试,实际上它可能也会丢失,因此将使用浏览器的默认衬线字体serif
。
但是整个画面比较复杂。部分Font Matching Algorithm在CSS字体模块级别3 LC(在这方面比CSS 2.1规范更真实,更接近浏览器真实性)描述了如何选择字体。
例如,考虑这样的规则:
p { font-family: Arial Unicode MS, Arial; font-style: italic }
在这种情况下,将Arial字体被使用,因为Arial字体的Unicode MS没有斜体字。或者至少这本书应该发生什么,以及现代浏览器会发生什么。
这是可能的文本中包含一个字符,不存在于主要字体。然后尝试其他字体,以便找到具有该字符的字体。对于给定的,h1{font-family:"Times New Roman", Times, serif;}
的情况下,这意味着在Times New Roman字体不可用(或次,但如果存在的话,它可能具有更有限的字符集),用于serif
任何特殊或“洋”字。
大多数情况是,如果第一个字体没有安装在系统上,则使用第二种字体。还有一些规则,但... –
是的。这是我的问题。在什么情况下会发生这种情况。第一部分已经在SO – AnaMaria
[本页](http://www.w3.org/TR/CSS2/fonts.html)上得到了回答,例如“将典型的字体选择属性映射到一个不是简单的问题特定的字体。“并解释了一些浏览器必须面对的问题,我可以从该页面复制一些材料,并将其粘贴到答案中,如果你喜欢... –