DIN字体网络字距调整问题

时间:2014-02-18 15:32:11

标签: css webfonts kerning

任何人都明白为什么这些特殊的角色:“Å”会得到一个非常奇怪的角色? http://www.ment.no/nettbutikk/skaaler/stjerneskaal/

他们在这里看起来很好:http://www.ment.no/nettbutikk/skaaler/liten-sukkertoyskal-korall/ enter image description here

1 个答案:

答案 0 :(得分:2)

屏幕截图中显示的复制文本中的第一个单词是“Skål”,它看起来很正常但不是:“å”实际上是两个字符,一个基本的拉丁字母“a”后跟U + 030A以上组合环。虽然这是正确的,并且与Unicode标准的正常“å”的“规范等效”,但现实更加模糊。

虽然规范等效序列是“预期”来呈现相同的,但这通常不会发生。首先,使用的字体可能不包含U + 030A,然后可能会发生奇怪的事情。此外,对于软件,在Unicode标准或HTML规范中,根本不支持组合U + 030A之类的字符。

一般的W3C政策,虽然不是HTML规范或草案的一部分,但使用规范化表格C.这包括像“å”这样的字符用自己的代码表示的原则,而不是基本字符和组合变音符号的对。见Character Model for the World Wide Web 1.0: Normalization(一份工作草案可能会,也可能会发生重大变化,但规范化原则可能得到了广泛的支持)。

在这种特定情况下,以下CSS声明适用于文本:

font-family: DIN,Arial,Helvetica,sans-serif !important;

这里发生的是DIN字体用于基本拉丁字母,但不用于U + 030A,因为该字符在DIN字体中没有字形。 Arial字体用于它。通常,当您将一种字体的基本字符与另一种字体的组合标记混合时,您应该会遇到更糟糕的情况。或者更糟。

最简单的解决方案似乎是使用“å”作为单个“预合成”字符U + 00E5,而不是使用双字符序列。 DIN字体包含它。

另一种解决方案是放弃使用DIN。使用Arial时,组合标记在现代浏览器中工作正常,因为现在它将用于相同字体的基本字符。

请注意,您可能会遇到与其他字符类似的问题,例如“é”(带急性重音的e)。