【问题标题】:Does font-size affect the rendering of ligatures?字体大小会影响连字的呈现吗?
【发布时间】:2012-08-27 05:58:38
【问题描述】:

Gecko 和 Webkit 浏览器支持通过 text-rendering: optimizeLegibility 呈现连字 ff fi fl ffl(字体必须有连字,例如 Calibri)。

MDN page 说,只有大小为 20 像素或更大的文本才会得到连字。根据my own research,这不是真的:

  • Firefox 将默认呈现连字;
  • 如果您指定 text-rendering: optimizeLegibility,Chrome(和 Safari)将呈现连字;
  • 两个引擎似乎都不介意字体大小

我在这里遗漏了什么吗?或者它只是 MDN 页面上的一个错误(过时?),我们应该修复它?

[编辑] 附加阅读:Smashing Magazine's “A Closer Look At Font Rendering”.

【问题讨论】:

    标签: css webkit gecko text-rendering ligature


    【解决方案1】:

    您的分析是正确的。一些额外的观察:

    显然CSS3 Fonts中描述的font-variant-ligatures属性还没有实现。相反,Firefox 实现了低级 font-feature-settings 属性,前缀为 -moz-,因此您实际上可以通过设置阻止 Firefox 应用连字

    -moz-font-feature-settings: 'liga' 0
    

    在一个元素上。

    如果您希望防止在特定情况下出现连字,您可以在可能会连字的字符之间插入零宽度非连接符 (ZWNJ),例如f‌i 而不是 fi

    【讨论】:

      【解决方案2】:

      Firefox 支持首选项browser.display.auto_quality_min_font_size,允许您调整它用来决定是否选择其字体呈现路径的值。然而,在当前版本的 Firefox 中,唯一仍然支持这一点的代码部分是在 Windows XP 上,其中小字体或显式 text-rendering: optimizeSpeed 将使用 GDI 而不是 Uniscribe 呈现。

      请注意,Thunderbird 出于某种原因将该首选项的值设置为零。

      【讨论】:

        【解决方案3】:

        实际上,MDN 页面说 20 像素或更高的文本会以任何一种方式获得连字,而 optimizeLegibility 会覆盖它。

        更一般地说,使用连字是否值得(以及影响易读性的其他因素,例如任何两个特定字形之间的特定字距调整)不仅因大小而异,而且因字体而异。我不会惊讶地发现这种变化随着版本的变化很快。当然,底层技术并没有停滞不前。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-10-13
          • 2016-11-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-03-09
          相关资源
          最近更新 更多