Die font-variant-numeric
Eigenschaft in CSS unterstützt das OpenType-Schriftformat, indem angegeben wird, welche numerischen Glyphen für eine Klasse verwendet werden sollen, einschließlich Variationen für Brüche, Ordnungsmarkierungen und gestaltete Variationen.
Ein kleiner Kontext
Wir neigen dazu, Zahlen als statische Glyphe zu betrachten. Es druckt und so ist es. Zahlen sind jedoch viel mehr wie Buchstaben in dem Sinne, dass sie Varianten haben können, die es je nach Kontext wert sind, den Stil zu ändern. Wir sprechen über Dinge wie Brüche (z. B. 1/4), Ordnungszahlen (z. B. 1.) und sogar das Äquivalent von Groß- und Kleinbuchstaben. Im Gegensatz zu Buchstaben ändern diese Variationen jedoch nicht die Bedeutung des Inhalts, obwohl sie zusätzlichen Kontext verleihen oder die Lesbarkeit beeinträchtigen.
Das Problem mit dieser Eigenschaft ist, dass sie für OpenType-fähige Schriftarten entwickelt wurde, ein neues, aber sich schnell entwickelndes Schriftformat, das einen umfangreicheren Satz von Glyphen bietet, die gezielt in verschiedenen Kontexten verwendet werden können. Möglicherweise wird OpenType häufig als variable Schriftarten bezeichnet. Dies liegt daran, dass sie eine größere Anzahl von Zeichen enthalten, die sie für eine Vielzahl von Verwendungszwecken flexibler machen. Variationen für alle Dinge!
Das Problem ist, dass die Verfügbarkeit von Schriftarten, die alle Vorteile nutzen können font-variant
und font-variant-numeric
begrenzt sind. Es gibt eine wachsende Anzahl von OpenType-kompatiblen Schriftarten, aber es gibt eine viel kleinere Untergruppe von Optionen, die alle angebotenen Funktionen nutzen font-variant-numeric
und die häufig hochwertig und teuer sind. Richard Butler fasst das gut zusammen:
Wir verfügen über Großbuchstaben, die als Zeilen- oder Titelnummern bezeichnet werden, und Kleinbuchstaben, die als alte oder Textnummern bezeichnet werden. Es ist auch so, dass die überwiegende Mehrheit der Schriftarten weder modern noch professionell ist, wenn modern OpenType- aktivierte und professionelle Mittel mit beiden Ziffernsätzen.
Das größte Problem, mit dem wir uns normalerweise befassen, wenn es um CSS-Eigenschaften geht, ist die Browserunterstützung. Diese und alle anderen damit verbundenen Eigenschaften font-variant
sind jedoch auch den Schriftdesignern ausgeliefert, um die vollständige Unterstützung für die Tabelle bereitzustellen.
Das ist ein Mist, aber wir sehen immer mehr "moderne" und "professionelle" Schriftarten, selbst zum Zeitpunkt dieses Schreibens. Adobe TypeKit kündigte an, OpenType-Funktionen zu unterstützen, und es wurde gemunkelt, dass Google Fonts jetzt auch an Bord ist, da Chrome 62 diese unterstützt.
Grundlegende Verwendung
Dies ist die grundlegendste Verwendung der Eigenschaft:
.fraction ( font-variant-numeric: diagonal-fractions; )
Ältere Browser erkennen das nicht, akzeptieren jedoch, dass font-feature-settings
dieselben Funktionen mit unterschiedlichen Werten freigeschaltet werden. Wir können die beiden Eigenschaften für eine tiefere Unterstützung koppeln:
.fraction ( font-feature-settings: frac; font-variant-numeric: diagonal-fractions; )
Oder wir können dies so anpassen, @supports
dass die Browserunterstützung mithilfe der neuen Eigenschaft nur für die Unterstützung von Browsern bereitgestellt wird:
.fraction ( font-feature-settings: frac; ) @supports (font-variant-numeric: diagonal-fractions) ( .fraction ( font-feature-settings: frac; font-variant-numeric: diagonal-fractions; ) )
Werte
Die font-variant-numeric
Eigenschaft akzeptiert die folgenden Werte. Der entsprechende font-feature-settings
Wert wird als Referenz notiert.
Allgemeine Werte


Wert | Beschreibung | Funktionseinstellung |
---|---|---|
normal | Keine der unten aufgeführten Funktionen ist aktiviert. | N / A |
ordinal | Wendet Buchstaben an, um die numerische Reihenfolge darzustellen, normalerweise in Form eines hochgestellten Zeichens. | ordn |
slashed-zero | Zeigt eine alternative Form von Null mit einer diagonalen Linie an, die durch sie verläuft. | zero |
Numerische Zahlenwerte


Wert | Beschreibung | Funktionseinstellung |
---|---|---|
lining-nums | Liniennummern mit vertikal nach oben, sodass sie auf derselben Höhe haften, werden auf derselben Ebene ausgerichtet. | lnum |
oldstyle-nums | Ermöglicht eine alternative vertikale Ausrichtung, bei der Zahlen nicht immer gleichmäßig auf derselben Grundlinie angezeigt werden. | onum |
Numerische Bruchwerte


Wert | Beschreibung | Funktionseinstellung |
---|---|---|
diagonal-fractions | Zeigt Brüche in einem kleineren Format an, wobei Zähler (obere Zahl) und Nenner (untere Zahl) durch einen diagonalen Schrägstrich geteilt werden. | frac |
stacked-fractions | Zeigt Brüche in einem kleineren Format an, wobei Zähler und Nenner übereinander gestapelt und durch eine horizontale Linie geteilt werden. | afrc |
Numerische Abstandswerte
Wert | Beschreibung | Funktionseinstellung |
---|---|---|
proportional-nums | Ermöglicht es Zahlen, ihren eigenen Platz einzunehmen, der nicht unbedingt gleich breit wie andere Ziffern ist. | pnum |
tabular-nums | Zeigt Zahlen mit gleicher Größe, Proportionalität und gleichem Abstand für eine saubere Formatierung in tabellarischen Datenkontexten an. | tnum |
Die Spezifikation enthält einen speziellen Hinweis zur Verwendung von, ordinal
da sie dem hochgestellten sup
Element ähnelt , jedoch anders gekennzeichnet ist.
Für hochgestellte Zeichen:
sup ( font-variant-position: super; )
Two squared is 22
Für Ordnungsmarkierungen:
.ordinal ( font-variant-numeric: ordinal; )
1st
Browser-Unterstützung
Die font-variant-numeric
Eigenschaft ist derzeit Teil der Spezifikation des CSS Fonts Module Level 3, die sich zum Zeitpunkt des Schreibens im Status der Kandidatenempfehlung befindet. Dies bedeutet, dass sie jederzeit geändert werden kann.
Desktop
Chrom | Kante | Feuerfuchs | IE | Oper | Safari |
---|---|---|---|---|---|
52 | Nein | 34 | Nein | 39 | 9.1 |
Firefox 24-34 (exklusiv) unterstützt die Eigenschaft hinter der layout.css.font-features.enabled
Voreinstellung, wenn sie festgelegt ist true
.
Handy, Mobiltelefon
Android Browser | Chrome Android | Kante | Feuerfuchs | IE | Opera Android | iOS Safari |
---|---|---|---|---|---|---|
52 | 52 | Nein | 34 | Nein | 39 | Ja |