La font-variant-numeric
propriété en CSS prend en charge le format de police OpenType en spécifiant les glyphes numériques à utiliser sur une classe, y compris les variations pour les fractions, les marqueurs ordinaux et les variations de style, entre autres.
Un peu de contexte
Nous avons tendance à considérer les nombres comme un glyphe statique. Il imprime et c'est comme ça. Cependant, les nombres ressemblent beaucoup plus à des lettres de l'alphabet dans le sens où ils peuvent avoir des variantes qui, selon le contexte, valent la peine de modifier le style. Nous parlons de choses comme les fractions (par exemple 1/4), les ordinaux (par exemple 1er) et même l'équivalent des chiffres majuscules et minuscules. Cependant, contrairement aux lettres, ces variations ne changent pas la signification du contenu, bien qu'elles apportent un contexte supplémentaire ou ont un impact sur la lisibilité.
Le hic avec cette propriété est qu'elle a été conçue pour fonctionner avec des polices compatibles OpenType, un nouveau format de police en développement rapide qui fournit un ensemble plus complet de glyphes pouvant être ciblés pour une utilisation dans différents contextes. Vous pouvez souvent entendre OpenType appelé polices variables, car elles contiennent une plus grande variété de caractères qui les rendent plus flexibles pour une variété d'utilisations. Des variations pour toutes les choses!
Le problème est que la disponibilité de polices capables de tirer pleinement parti de font-variant
et font-variant-numeric
est limitée. Il existe un nombre croissant de polices compatibles OpenType, mais il existe un sous-ensemble beaucoup plus restreint d'options qui utilisent toutes les fonctionnalités font-variant-numeric
proposées et celles-ci sont souvent premium et coûteuses. Richard Butler résume bien cela:
Nous avons à notre disposition des nombres «majuscules» appelés chiffres de doublure ou de titrage, et des chiffres «minuscules» appelés chiffres de style ancien ou de texte.… Il est également vrai que la grande majorité des polices ne sont ni modernes ni professionnelles, si moderne signifie OpenType- des moyens activés et professionnels conçus avec les deux ensembles de chiffres.
Le plus gros problème qui nous préoccupe généralement en ce qui concerne les propriétés CSS est la prise en charge du navigateur, mais cette propriété et toutes les autres font-variant
sont également à la merci des concepteurs de polices pour apporter un support complet à la table.
C'est dommage, mais nous commençons à voir apparaître des polices plus «modernes» et «professionnelles», même au moment d'écrire ces lignes. Adobe TypeKit a annoncé son travail pour prendre en charge les fonctionnalités OpenType et il a été dit que Google Fonts est également intégré maintenant que Chrome 62 les prend en charge.
Utilisation de base
Voici l'utilisation la plus basique de la propriété:
.fraction ( font-variant-numeric: diagonal-fractions; )
Les navigateurs plus anciens ne le reconnaîtront pas, mais ils acceptent font-feature-settings
ce qui déverrouille les mêmes fonctionnalités avec des valeurs différentes. Nous pouvons associer les deux propriétés pour une prise en charge plus approfondie:
.fraction ( font-feature-settings: frac; font-variant-numeric: diagonal-fractions; )
Ou, nous pouvons personnaliser cela pour détecter la prise en charge du navigateur @supports
afin que la nouvelle propriété ne soit servie qu'aux navigateurs compatibles:
.fraction ( font-feature-settings: frac; ) @supports (font-variant-numeric: diagonal-fractions) ( .fraction ( font-feature-settings: frac; font-variant-numeric: diagonal-fractions; ) )
Valeurs
La font-variant-numeric
propriété accepte les valeurs suivantes. La font-feature-settings
valeur correspondante est notée pour référence.
Valeurs générales
![](8874230/font-variant-numeric_css-tricks_2.png.webp)
![](8874230/font-variant-numeric_css-tricks_2.png.webp)
Évaluer | Description | Réglage des fonctionnalités |
---|---|---|
normal | Aucune des fonctionnalités répertoriées ci-dessous n'est activée. | N / A |
ordinal | Applique des lettres pour représenter l'ordre numérique, généralement sous la forme d'un exposant. | ordn |
slashed-zero | Affiche une autre forme de zéro avec une ligne diagonale qui la traverse. | zero |
Valeurs des chiffres numériques
![](8874230/font-variant-numeric_css-tricks_3.png.webp)
![](8874230/font-variant-numeric_css-tricks_3.png.webp)
Évaluer | Description | Réglage des fonctionnalités |
---|---|---|
lining-nums | Les lignes numérotées verticalement de sorte qu'elles adhèrent à la même hauteur sont alignées sur le même plan. | lnum |
oldstyle-nums | Permet un alignement vertical alternatif où les nombres ne sont pas toujours affichés uniformément sur la même ligne de base. | onum |
Valeurs numériques des fractions
![](8874230/font-variant-numeric_css-tricks_4.png.webp)
![](8874230/font-variant-numeric_css-tricks_4.png.webp)
Évaluer | Description | Réglage des fonctionnalités |
---|---|---|
diagonal-fractions | Affiche les fractions dans un format plus petit où le numérateur (nombre du haut) et le dénominateur (nombre du bas) sont divisés par une barre oblique. | frac |
stacked-fractions | Affiche les fractions dans un format plus petit où le numérateur et le dénominateur sont empilés les uns sur les autres et divisés par une ligne horizontale. | afrc |
Valeurs d'espacement numériques
Évaluer | Description | Réglage des fonctionnalités |
---|---|---|
proportional-nums | Permet aux nombres d'occuper leur propre espace dont la largeur n'est pas nécessairement égale aux autres chiffres. | pnum |
tabular-nums | Affiche les nombres avec une taille, une proportionnelle et un espacement égaux pour une mise en forme propre dans des contextes de données tabulaires. | tnum |
La spécification comprend une note spéciale sur l'utilisation de ordinal
car elle ressemble à l' sup
élément exposant mais est balisée différemment.
Pour les exposants:
sup ( font-variant-position: super; )
Two squared is 22
Pour les marqueurs ordinaux:
.ordinal ( font-variant-numeric: ordinal; )
1st
Prise en charge du navigateur
La font-variant-numeric
propriété fait actuellement partie de la spécification de niveau 3 du module de polices CSS, qui est dans le statut de recommandation candidate au moment de la rédaction de cet article, ce qui signifie qu'elle peut changer à tout moment.
Bureau
Chrome | Bord | Firefox | C'EST À DIRE | Opéra | Safari |
---|---|---|---|---|---|
52 | Non | 34 | Non | 39 | 9.1 |
Firefox 24-34 (exclusif) prend en charge la propriété derrière la layout.css.font-features.enabled
préférence lorsqu'elle est définie sur true
.
Mobile
Navigateur Android | Chrome Android | Bord | Firefox | C'EST À DIRE | Opera Android | Safari sur iOS |
---|---|---|---|---|---|---|
52 | 52 | Non | 34 | Non | 39 | Oui |