CSS font-variant-ligatures Eigenschaft
Die Eigenschaft font-variant-ligatures steuert die Ligaturen einer Schrift. Werte und Beispiele ansehen.
Die CSS-Eigenschaft font-variant-ligatures legt fest, welche Ligaturen und kontextuellen Formen eine Schrift verwendet. Eine Ligatur ist ein einzelnes Glyphe, das ein Schriftbild als Ersatz für zwei oder mehr Zeichen einfügt, die andernfalls kollidieren oder unschön nebeneinander wirken würden – das klassische Beispiel ist das fi-Paar, bei dem der Punkt des i mit dem Haken des f kollidiert.
Ligaturen sind ein OpenType-Feature, das in der Schriftdatei enthalten ist. Diese Eigenschaft erlaubt es, die verfügbaren Ligaturen ein- oder auszuschalten; enthält die Schrift eine bestimmte Ligatur nicht, hat die Eigenschaft keine sichtbare Wirkung. Daher ändert font-variant-ligatures nur die Darstellung, niemals den zugrunde liegenden Text – Kopieren, Suchen und Screenreader sehen weiterhin die ursprünglichen Zeichen.
font-variant-ligatures akzeptiert jeweils einen Schlüsselwert aus den folgenden Gruppen (in beliebiger Reihenfolge kombinierbar):
normal— die Schrift entscheidet selbst (Standard).none— alle Ligaturen und kontextuellen Formen werden deaktiviert.<common-lig-values>—common-ligatures/no-common-ligatures<discretionary-lig-values>—discretionary-ligatures/no-discretionary-ligatures<historical-lig-values>—historical-ligatures/no-historical-ligatures<contextual-alt-values>—contextual/no-contextual
| Anfangswert | normal |
|---|---|
| Gilt für | Alle Elemente. Gilt auch für ::first-letter und ::first-line. |
| Vererbt | Ja. |
| Animierbar | Nein. |
| Version | CSS3 |
| DOM-Syntax | object.style.fontVariantLigatures = "normal"; |
Syntax
font-variant-ligatures: normal | none | <common-lig-values> | <discretionary-lig-values> | <historical-lig-values> | <contextual-alt-values>;Mehrere Schlüsselwörter aus verschiedenen Gruppen können zusammen angegeben werden. Dieses Beispiel behält gewöhnliche Ligaturen bei, aktiviert dekorative und deaktiviert kontextuelle Verbindungen:
font-variant-ligatures: common-ligatures discretionary-ligatures no-contextual;Beispiel der font-variant-ligatures-Eigenschaft
Die beiden Spans unten rendern dieselben Zeichen mit derselben Schrift. Im ersten Fall sind gewöhnliche Ligaturen deaktiviert, sodass f und i als zwei separate Glyphen erscheinen; im zweiten Fall sind sie aktiviert, sodass das Paar zu einer einzigen fi-Glyphe verbunden wird.
<!DOCTYPE html>
<html>
<head>
<title>The title of the document </title>
<style>
div {
font-family: Lora, serif;
font-size: 35vw;
}
.gray {
font-variant-ligatures: no-common-ligatures;
color: #ccc;
}
.blue {
font-variant-ligatures: common-ligatures;
color: #1c87c9;
}
</style>
</head>
<body>
<h2>Font-variant-ligatures property example</h2>
<div>
<span class="gray">fi</span>
<span class="blue">fi</span>
</div>
</body>
</html>Ergebnis

Arten von Ligaturen
CSS unterscheidet vier Familien von Ligaturen und kontextuellen Formen, die alle am weit verbreiteten OpenType-Format ausgerichtet sind. Jede Familie hat ihr eigenes Schlüsselwortpaar, sodass sie unabhängig voneinander umgeschaltet werden können.
Gewöhnliche Ligaturen
Gewöhnliche Ligaturen treten auf, wenn zwei Zeichen ansonsten „zusammenstoßen" würden – das Schulbeispiel ist das Paar f + i in Kleinbuchstaben. Ihre Verbindung macht den Text angenehmer zu lesen, weshalb die meisten Schriften und Browser gewöhnliche Ligaturen standardmäßig aktivieren. Explizit umschalten mit:
/* Enable common ligatures (the default) */
font-variant-ligatures: common-ligatures;
/* Disable common ligatures */
font-variant-ligatures: no-common-ligatures;Dekorative Ligaturen
Dekorative Ligaturen (auch Ermessensligaturen genannt) dienen der visuellen Verschönerung statt der Lesbarkeit – man denke an eine ornamentale ct- oder st-Verbindung in einer Display-Schrift. Sie sind standardmäßig ausgeschaltet und werden nur dort eingesetzt, wo die Dekoration gewünscht ist:
/* Enable discretionary ligatures */
font-variant-ligatures: discretionary-ligatures;
/* Disable discretionary ligatures */
font-variant-ligatures: no-discretionary-ligatures;Historische Ligaturen
Historische Ligaturen reproduzieren Formen, die einst in alten Büchern und Manuskripten verbreitet waren, wie zum Beispiel das Lang-s (ſ)-Kombinationen. Wie dekorative Ligaturen sind sie dekorativ und standardmäßig ausgeschaltet:
/* Enable historical ligatures */
font-variant-ligatures: historical-ligatures;
/* Disable historical ligatures */
font-variant-ligatures: no-historical-ligatures;Kontextuelle Alternativen
Kontextuelle Alternativen verbessern die Lesbarkeit, indem sie eine Glyphe wählen, die fließend an ihre Nachbarn anschließt. Sie fallen am stärksten bei verbundenen Schriften auf (Handschriftschriften, Arabisch), wo Striche von einem Zeichen zum nächsten kontinuierlich fließen müssen. Umschalten mit:
/* Enable contextual alternates */
font-variant-ligatures: contextual;
/* Disable contextual alternates */
font-variant-ligatures: no-contextual;Werte
| Wert | Beschreibung |
|---|---|
| normal | Die Aktivierung von Formen und Ligaturen hängt von der Schrift, der Sprache und der Schriftart ab. Dies ist der Standardwert dieser Eigenschaft. |
| none | Alle Ligaturen und kontextuellen Formen sind deaktiviert. |
<common-lig-values> | Steuert alle Ligaturen. |
<discretionary-lig-values> | Steuert bestimmte Ligaturen. |
<historical-lig-values> | Steuert Ligaturen, die in alten Büchern verwendet werden. |
<contextual-alt-values> | Steuert die Anpassung der Buchstaben an ihren Kontext (contextual / no-contextual). |
| initial | Setzt die Eigenschaft auf ihren Standardwert (normal). |
| inherit | Erbt die Eigenschaft vom übergeordneten Element. |
Wann es verwendet werden sollte
Meistens ist normal die richtige Wahl – der Schriftgestalter hat bereits sinnvolle Standardeinstellungen gewählt. Explizite Werte sind sinnvoll, wenn:
- Eine Display- oder Logo-Überschrift dekorative
discretionary-ligaturesbenötigt, die sie sonst nicht erhalten würde. - Ein Monospace-/Code-Block Ligaturen rendert, die nicht gewünscht sind (manche Editoren verwandeln
!=in eine einzelne Glyphe);noneoderno-common-ligaturesstellt die wörtlichen Zeichen wieder her. text-rendering: optimizeSpeedgesetzt ist oder Text animiert wird und die Ligatur-Substitution ein Flimmern verursacht – das Deaktivieren kann das Rendering stabilisieren.
Verwandte Eigenschaften
- font-variant — die Kurzschreibweise, die Ligaturen mit Kapitälchen, Ziffernvarianten und anderen Varianten-Features bündelt.
- font-feature-settings — Low-Level-Zugriff auf dieselben OpenType-Features über ihre vierstelligen Tags (
liga,dlig,hlig,calt). - font-kerning — steuert den Abstand zwischen Glyphenpaaren, das Feature, das am häufigsten mit Ligaturen verwechselt wird.
- css-font-variant-caps-property und css-font-variant-numeric-property — verwandte
font-variant-*-Langschreibweisen.