代码之家  ›  专栏  ›  技术社区  ›  Pavlo

字体大小是否会影响连字的呈现?

  •  5
  • Pavlo  · 技术社区  · 12 年前

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

    MDN page 比如说,只有大小为20px或更高的文本才会使用连字。根据 my own research 这不是真的:

    • 默认情况下,Firefox将呈现连字;
    • 如果指定,Chrome(&Safari)将渲染连字 文本渲染:优化可读性 ;
    • 两个引擎似乎都不介意字体大小

    我是不是错过了什么?或者这只是MDN页面上的一个错误(过期?),我们应该修复它?

    〔edit〕补充阅读:粉碎杂志 “A Closer Look At Font Rendering”

    3 回复  |  直到 12 年前
        1
  •  4
  •   Neil    12 年前

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

    请注意,由于某种原因,Thunderbird将该偏好的值设置为零。

        2
  •  2
  •   Jon Hanna    12 年前

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

    更普遍地说,是否使用连字(以及其他影响易读性的因素,如任何两个特定字形之间的特定紧排)的价值不仅因大小而异,而且因字体而异。如果我发现这种情况随着版本的变化而迅速变化,我也不会感到惊讶。当然,基础技术并没有停滞不前。

        3
  •  2
  •   Jukka K. Korpela    12 年前

    你的分析是正确的。一些附加观察:

    显然 font-variant-ligatures 中描述的属性 CSS3 Fonts 尚未实施。相反,Firefox实现了 font-feature-settings 属性,带有前缀 -moz- ,因此您可以通过设置

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

    在元素上。

    如果您希望防止在特定的情况下使用连字,可以在可能被连字的字符之间插入ZERO-WIDTH NON-JOINER(ZWNJ),例如。 f‌i 而不是 fi