我的问题没有任何代码。所以请不要问我。 这是一个提供信息的问题。
我们都知道CSS字体系列规则。实施例
h1{font-family:"Times New Roman", Times, serif;}
现在我明白声明一个font-family的原因是浏览器无法找到它将切换到第二个字体的第一个字体。但在什么情况下会发生这种情况。字体失败是否与最终用户计算机上安装的字体有关或某些浏览器不支持特定字体?
答案 0 :(得分:2)
正如您所说,答案是 YES ,如果某些或其他字体无法加载,则上述声明将用作后备。让我解释一下。
让我们稍微修改你的声明。假设我们有一个Web字体和两个系统字体,因此声明就像
h1 {
font-family: 'Open Sans', Arial, Helvetica;
}
在这里,我们从Open Sans
获取Google Web Fonts
字体。所以在这里,假设Google服务器已关闭或者说用户浏览器太旧而无法理解font-face
或Web Fonts
,并且当我的网页被特定用户请求时,Open Sans
由于服务器已关闭,因此无法下载字体,在这种情况下,CSS将使用Arial
,现在如果用户系统没有Arial
字体,它将会应用Helvetica
。
如果用户没有任何字体,则网站将呈现用户设置的浏览器默认字体。
答案 1 :(得分:1)
最明显的情况是缺少第一种字体的系统。在极少数情况下Times New Roman失踪,Times被尝试了,实际上它可能也会丢失,所以serif
,即浏览器的默认serif字体,将被使用。
但全貌更复杂。 CSS字体模块级别3 LC中的Font Matching Algorithm部分(在这方面更加真实,比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(或Times中没有)的任何特殊或“外国”字符,但如果存在,它可能具有更有限的字符集,serif
使用。