2012-09-01 7 views
5

Gecko- und Webkit-Browser unterstützen das Rendern von Ligaturen ff fi fl ffl über text-rendering: optimizeLegibility (Schriftart muss Ligaturen haben, z. B. Calibri).Beeinflusst die Schriftgröße die Darstellung von Ligaturen?

MDN page sagt, dass nur Text der Größe 20px und höher Ligaturen erhalten. Nach my own research ist dies nicht wahr:

  • Firefox wird Ligaturen standardmäßig rendern;
  • Chrome (& Safari) rendert Ligaturen, wenn Sie text-rendering: optimizeLegibility angeben;
  • scheinen beide Motoren nichts gegen die Schriftgröße.

Fehle ich etwas hier? Oder es ist nur ein Fehler (outdate?) Auf MDN-Seite und wir sollten es beheben?

[Bearbeiten] Zusätzliche Lesung: Smashing Magazine “A Closer Look At Font Rendering”.

Antwort

4

Firefox unterstützt eine Voreinstellung browser.display.auto_quality_min_font_size, mit der Sie den Wert anpassen können, der verwendet wird, um zu entscheiden, ob der Schriftart-Renderingpfad ausgewählt werden soll. Der einzige Teil des Codes, der in aktuellen Versionen von Firefox noch berücksichtigt wird, ist jedoch Windows XP, wo kleine Schriftgrößen oder eine explizite text-rendering: optimizeSpeed mit GDI anstelle von Uniscribe dargestellt werden.

Beachten Sie, dass Thunderbird den Wert dieser Einstellung aus irgendeinem Grund auf Null setzt.

2

Tatsächlich sagt die MDN-Seite, dass Text von 20px oder höher Ligaturen erhalten wird, mit optimizationLegibility das überschreiben.

Ganz allgemein, wie lohnend es ist, Ligaturen zu verwenden oder nicht (und andere Faktoren, die die Lesbarkeit beeinflussen, wie ein bestimmtes Kerning zwischen zwei beliebigen Glyphen), variiert nicht nur mit der Größe, sondern auch von Schriftart zu Schriftart. Es würde mich nicht wundern, wenn sich das mit den Versionen ziemlich schnell ändert. Sicher, die zugrunde liegende Technologie steht nicht still.

2

Ihre Analyse ist korrekt. Einige zusätzliche Beobachtungen:

Anscheinend wurde die in CSS3 Fonts beschriebene Eigenschaft font-variant-ligatures nicht implementiert. Stattdessen implementiert Firefox die Low-Level font-feature-settings Eigenschaft, mit dem Präfix -moz-, so können Sie tatsächlich Firefox Anwendung Ligatur verhindern, indem

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

auf einem Element zu setzen.

Wenn Sie Ligaturen in bestimmten Vorkommen verhindern möchten, können Sie ZERO-WIDTH NON-JOINER (ZWNJ) zwischen Zeichen einfügen, die andernfalls ligiert werden könnten, z. f‌i anstelle von fi.