【问题标题】:Why does letter spacing not always work with all letters?为什么字母间距并不总是适用于所有字母?
【发布时间】:2017-03-23 20:11:44
【问题描述】:

我过去曾在一些@font-face webfonts 上遇到过这种情况。我最近下载了免费的Museo Sans 500 webfont,但在某些字母间距正确时遇到了一些问题,特别是字母 f。调整 CSS letter-spacing 属性时,只要有“f”,它就不会再次应用字母间距,直到“f”后面的第二个字母。

例如:

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

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

我以前从未创建或编辑过字体,所以我不确定这是否与编辑字体本身有关,或者是否与 @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:

我遇到了一个非常漂亮的插件kerning.js,我可以用它来临时解决这个问题,但是对于一个字母来说似乎有点过分了,特别是因为它似乎在我链接的其他网站上也能正常工作早些时候。关于如何用 CSS 解决这个问题的任何建议,还是我必须与字体本身有关>

【问题讨论】:

  • 关闭 CSS 中的连字。启用连字的字体中的ffffisingle 字母,字母间距对它们的作用与任何其他单个字母相同。另外请修复您的帖子:您显示的 CSS 块在任何地方都没有值,因此完全不清楚您通过包含它来显示什么。

标签: css fonts webfonts letter-spacing


【解决方案1】:

发生这种情况是因为您的 Museo 版本包含连字,而 Typekit 在其他网站上提供的版本不包含连字。字母“ffi”彼此靠近的原因是因为它是一个连字——三个字母的“绘图”,而不是三个单独的字母。现代浏览器默认开启这些功能。

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

【讨论】:

  • 你就是那个男人!无论您认为自己对 css 了解多少,这都太疯狂了,似乎总有更多东西需要学习。我感觉它与font-feature-settingsfont-variant-ligatures 有关,但直到现在才真正完全理解连字。他们实际上在维基百科上mention the "fi" example。看起来该网站正在使用 Cloud.typography 作为其字体,其字体为 setting to easily disable ligatures。不过Fontspring也有这个功能。
  • 我忘了提到 font-variant-ligatures: none; 和速记 font-variant: none; 也可以,但我不肯定应该使用它而不是 font-feature-settings: "liga" 0;
猜你喜欢
  • 1970-01-01
  • 2013-04-13
  • 2015-04-23
  • 2022-06-13
  • 2012-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-02
相关资源
最近更新 更多