因此,要在多个用户计算机上显示一些特殊的单代码字符会出现问题。我实现的字体堆栈如下:
font-family:Georgia, "Times New Roman", Times, serif;
现在说出一些奇怪的原因,用户没有为“格鲁吉亚”安装字母“A”,而字母“A”会改为“Times New Roman”吗?
答案 0 :(得分:2)
按规格,绝对。在浏览器实践中,主要是,但远非总是如此。
CSS 2.1规范明确规定了一种算法,必要时,在字符级别扫描字体系列列表。 Font matching algorithm部分说:“2。在给定元素和该元素中的每个字符处,UA汇编适用于该元素的字体属性。 - - 如果有匹配的字体,但它不包含当前字符的字形,并且如果字体集中有下一个替代'font-family',则使用下一个替代'font-重复步骤2家庭”。”
这可能失败的一个原因是浏览器依赖于字体文件中有关其字符覆盖范围的信息,而不是详细检查字体文件内容。在现有的假设案例中,浏览器会检查佐治亚州是否宣布涵盖基本拉丁语范围等。因此它会将其委托给格鲁吉亚以呈现“A”。如果字体被剥夺了“A”的字形,通过一些黑魔法,那么渲染将以某种方式失败。
这不太可能,但字体可能会宣布支持Unicode范围,但不包括自上次更新字体以来添加到该范围的所有新字符。
答案 1 :(得分:0)
不。字体面被解析为“这个字体是否存在”而不是“这个字体是否完整”。这种方式更快,更一致 - 而且,不会导致您的文本看起来像是被报纸剪掉了。
最好的办法是查看字体提供的字形,然后选择一个包含所需字形的字形。如果您不喜欢这些字体(并且只有少数字体具有日语汉字或波斯语字形),您可以管理服务器上的字体堆栈,作为一个不那么好但可能是正确的选项。通过提供基于语言的不同字体系列。
答案 2 :(得分:0)
不,我认为对于缺少的字符,网站会返回一个□
符号,表示该字符不可用。
只有实际的字体本身不在系统上时,系统才会切换到font-family
上的下一个字体。