Font-variant-position - Propriété CSS

font-variant-position

Résumé des caractéristiques de la propriété font-variant-position

Description rapide
Mise en exposant ou en indice des caractères.
Statut
Standard
Utilisable sur
HTML
Valeurs prédéfinies
normal | sub | super
Pourcentages
Ne s'appliquent pas.
Valeur initiale
normal
Héritée par défaut
Oui.
Type d'animation
Discrète : lors d'une animation, la propriété font-variant-position passe d'une valeur à l'autre sans transition.
Module W3C
Module CSS - Polices de caractères
Références (W3C)
 🡇  
 🡅  
Statut du document: WD (document de travail)

Statut du document: REC (recommandation)

Schéma syntaxique de font-variant-position.

Font-variant-position property - Syntax diagramSyntax diagram of the font-variant-position CSS property. See stylescss.free.fr for details. normal normal sub sub super superfont-variant-position:;font-variant-position:;
Schéma syntaxique de la propriété font-variant-position
Les liens du schéma donnent accès à plus de détails

Description de la propriété font-variant-position.

Encore des problèmes de prise en charge : seul Firefox traite correctement cette propriété (2022). De plus le fonctionnement de font-variant-position est très dépendant de la police de caractères utilisée.

La propriété font-variant-position permet la mise en indice ou en exposant.

Elle semble faire double emploi avec la propriété vertical-align ou avec les balise HTML sub et sup, mais la différence vient du fait que font-variant-position exploite les possibilités des polices OTF, alors que les autres solutions procèdent par calcul. Ce qui signifie que font-variant-position peut utiliser pour les exposants ou les indices, des glyphes différents de ceux utilisés pour les caractères standards. Ces glyphes sont fournis par la police et mieux adaptés à la mise en indice ou en exposant.

Balises HTML sup et sub
Bonne compatibilité
Change l'interligne. Réduit la taille des caractères.
Propriété vertical-align
Bonne compatibilité.
Change l'interligne.
Ne réduit pas la taille des caractères.
Propriété font-variant-position
Meilleure esthétique.
Pas tous les caractères (1).
Dépend de la police.

(1) Les polices fournissent rarement les glyphes exposant et indice pour l'ensemble des caractères. Souvent c'est uniquement les nombres qui sont déclinés en exposant et indice.

Ci-dessous un résultat comparé entre les trois méthodes.

Balises sup et sub.

Ce premier texte contient des exposants et des indices mis en forme avec les balises HTML sup et sub.
Les caractères mis en exposant ou en indice sont non seulement décalés par rapport à la ligne de base, mais ils sont également dans une taille plus petite. La hauteur de la première ligne a aussi été augmentée.
C'est le fonctionnement normal des balises sup et sub.

Propriété vertical-align.

Ce deuxième texte contient des exposants et des indices mis en forme avec la propriété vertical-align.
On voit que la taille des caractères n'a pas été modifiée. L'interligne est augmenté.

Propriété font-variant-position.

Enfin, ce texte contient des exposants et des indices mis en forme avec la propriété font-variant-position.
La taille des caractères en exposant ou en indice a été réduite, mais il se peut aussi que leur forme soit également adaptée (suivant la police). Il n'y a pas de nécessité de changer l'interligne. Du point de vue typographique, ce résultat est le meilleur des trois mais malheureusement très dépendant de la police de caractères choisie et du navigateur utilisé.

Cet exemple ne fonctionnera pas sur tous les navigateurs : la propriété font-variant-position est encore mal reconnue. A tester sur Firefox  .

Voici un code CSS qui permet d'obtenir une mise en forme correcte sur tous les navigateurs, tout en exploitant au mieux les possibilités de chacun d'eux. Il utilise la directive @supports pour tester la compatibilité du navigateur.

@supports not (font-variant-position:super) { <selector> { vertical-align: top; font-size: 0.75em; } } @supports (font-variant-position:super) { <selector> { font-variant-position:super; } }

Voir aussi la propriété résumée font-variant, la propriété font-feature-settings pour une présentation générale des possibilités des polices OTF, et enfin, la propriété font-synthesis-position pour activer ou désactiver le calcul des exposants et indices lorsque la police de caractères ne propose pas ces variantes.

Syntaxes pour font-variant-position.

  • font-variant-position: normal;

    Valeur par défaut. Les caractères sont sur la ligne de base.

  • font-variant-position: super;

    Mise en exposant.

    La valeur super est équivalent à font-feature-settings:'sups'.

    Exemple pour font-variant-position:super
    Ceci est une simulation

  • font-variant-position: sub;

    Mise en indice.

    La valeur sub est équivalent à font-feature-settings:'subs'.

    Exemple pour font-variant-position:sub
    Ceci est une simulation

Valeurs standards acceptées par toutes les propriétés:

font-variant-position: initial (normal) font-variant-position: inherit font-variant-position: revert font-variant-position: revertLayer font-variant-position: unset

Liens vers la présentation de ces différentes valeurs : initial, inherit, revert, revert-layer, unset.

Exemple d'animation de la propriété font-variant-position.

Voici un petit visuel (sans grande prétention) qui utilise l'animation de font-variant-position. Pour l'instant, il ne fonctionne que sur Firefox.

On hésite parfois entre l'exposant et l'indice

Simulateur avec la propriété font-variant-position.

Le simulateur applique la propriété font-variant-position sur les parties de texte en bleu. Celles-ci sont délimitées par des balises span.

font-variant-position :
Formule chimique du sucre : C12H220

Surface du cercle = πd2/4

Prise en charge par les navigateurs (compatibilité).

La propriété font-variant-position présente encore des problèmes de compatibilité sur de nombreux navigateurs.

Colonne 1
Prise en charge de la propriété font-variant-position permettant la mise en indice ou en exposant d'un texte.
1
Propriété
font-variant-position
Estimation de la prise en charge globale.
20%

Navigateurs sur ordinateurs :

Navigateurs sur mobiles :

Navigateurs obsolètes ou marginaux :

Internet Explorer

KaiOS Browser

Opéra Mobile

Opéra

Safari

Safari sur IOS

Firefox pour Androïd

Samsung Internet

Chrome

Edge

Firefox

Androïd Brower

Chrome pour Androïd

Baidu Browser

QQ Browser

UC Browser pour Androïd

Opéra mini

Historique de la propriété font-variant-position.

Voir aussi, au sujet des polices de caractères.

Tout ce qui concerne les polices de caractères est regroupé dans la spécification CSS Fonts Module : la typographie, l'exploitation des possibilités des formats de polices modernes, le téléchargement de polices, etc.

Propriétés :

font
Raccourci pour définir la plupart des propriétés concernant les polices de caractères.
font-effect
Permet d'appliquer quelques effets au texte : relief, bordure...
font-family
Sélectionne une police de caractères parmi celles qui sont disponibles ou celles qui sont téléchargées.
font-feature-settings
Permet d'exploiter les fonctionnalités spécifiques des polices de caractères OTF, WOFF, etc.
font-kerning
Ajustement du crénage entre caractères.
font-language-override
Définit le langage à prendre en compte lors du choix des caractères.
font-optical-sizing
Optimise la forme des caractères en fonction de leur taille.
font-palette
Définit la palette de couleurs utilisable pour les polices de caractères colorées.
font-size
Ajuste la taille des caractères, ce qui impacte aussi les units comme em, ex, etc.
font-size-adjust
Définition du coefficient d'aspect de la police.
font-smooth
Définit si un algorithme de lissage doit être utilisé et lequel.
font-stretch
Modifie l'étirement ou la compression des caractères.
font-style
Sélectionne les styles italique ou oblique de la police de caractères.
font-synthesis
Autorise ou non le calcul des styles manquants dans la police de caractères.
font-synthesis-position
Autorise ou non le navigateur à synthétiser les caractères en exposant ou en indice.
font-synthesis-small-caps
Autorise ou non le navigateur à calculer le glyphes des caractères en petites capitales.
font-synthesis-style
Définit si le navigateur est autorisé à synthétiser les formes italiques des caractères.
font-synthesis-weight
Définit si le navigateur peut calculer ou non le glyphe des caractères gras.
font-variant
Raccourci permettant de définir les attributs typographiques évolués : ligatures, substitution de caractères, etc.
font-variant-alternates
Définit la substitution de caractères (polices OTF, WOFF).
font-variant-caps
Applique une capitalisation des caractères.
font-variant-east-asian
Typographie spécifique aux caractères chinois ou japonais.
font-variant-emoji
Choisit entre une présentation en emoji ou en texte.
font-variant-ligatures
Active ou désactive la ligature des caractères.
font-variant-numeric
Définit le mode d'affichage des nombres évolués : fractions, numéros, etc.
font-variation-settings
Donne accès aux possibilités stylistiques des polices OTF.
font-weight
Sélectionne une graisse pour les caractères.
font-width
Synonyme de font-stretch (largeur/élargissement des caractères).

Fonctions :

palette-mix()
Établit le mélange de deux palettes de couleurs issus de deux polices de caractères différentes.

Directives :

@font-face
Définit tous les paramètres d'une police de caractères téléchargeable.
@font-feature-values
Définit les variantes typographiques à utiliser.
@font-palette-values
Définit une palette de couleurs applicable ensuite à une police de caractères.

Descripteurs :

ascent-override
Descripteur pour @font-face. Définit la hauteur des caractères au dessus de la ligne de base.
descent-override
Descripteur pour @font-face. Définit la hauteur des caractères au dessous de la ligne de base.
font-display
Descripteur pour @font-face. Détermine le comportement du navigateur face aux polices de caractères longues à charger.
line-gap-override
Descripteur pour @font-face. Définit l'interligne de la police.
src
Définit la source d'un fichier de police de caractères à télécharger, ou d'une image à afficher.
unicode-range
Descripteur pour @font-face. Définit la plage des codes de caractères à télécharger dans une police.