为什么字母间距并不总是适用于所有字母?

Bry*_*lis 2 fonts css3 webfonts letter-spacing

我过去曾经遇到过一些@ font-face webfonts.我最近下载了免费的Museo Sans 500 webfont,但我遇到了一些问题,某些字母间距正确,字面f.调整CSS letter-spacing属性时,如果有"f",则在"f"之后的第二个字母之前不会再次应用字母间距.

例如:

在此输入图像描述

或者使用单词的另一个例子:

在此输入图像描述

无论如何,我遇到了这个也使用字体的网站,但是当他们在网站上弄乱文本和字母间距时,它没有任何问题.

在此输入图像描述

我之前从未创建或编辑过字体,所以我不确定这是否与编辑字体本身有关,或者是否与@ font-face有关,可能还有我可以用css修复的东西.

我已经尝试搞乱了我所知道的每个css字体属性,但似乎没有一个能解决这个问题.

font-variant-ligatures:
font-kerning: 
letter-spacing:     
text-rendering: 
font-feature-settings: 
font-kerning: 
-webkit-font-smoothing: 
text-size-adjust:
font-size:
Run Code Online (Sandbox Code Playgroud)

我遇到了一个非常漂亮的插件,kerning.js我可以用来暂时解决这个问题,但是对于一个字母来说似乎有些过分,特别是因为它似乎在我之前链接的其他网站上工作正常.有关如何使用CSS修复此问题的任何建议,或者是我与字体本身有关的事情>

Roe*_*elN 8

发生这种情况是因为您的Museo版本包含连字,而Typekit在其他网站上提供的连接不包含.字母"ffi"与其他字母保持接近的原因是因为它是一个连字 - 一个"画"三个字母,而不是三个单独的字母.现代浏览器默认启用它们.

您应该可以关闭连字符font-feature-settings: "liga" 0;,或者如果您不使用altogther,更简单的解决方案是使用没有连字的Museo版本.

  • 你就是那个男人!这很疯狂,无论您认为自己对 css 了解多少,似乎总是有更多东西需要学习。我有一种感觉,它与“字体功能设置”或“字体变体连字”有关,但直到现在才真正完全理解连字。他们实际上在维基百科上[提到了“fi”示例](https://en.wikipedia.org/wiki/Typgraphic_ligature#Latin_alphabet)。看起来该网站正在使用 Cloud.typography 作为其字体,该字体具有[轻松禁用连字的设置](http://www.typography.com/cloud/user-guide/font-tools)。Fontspring也有这个功能。 (2认同)