Font-size - Propriété CSS

font-size

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

Description rapide
Ajuste la taille des caractères, ce qui impacte aussi les units comme em, ex, etc.
Statut
Standard
Utilisable sur
HTML
Valeurs prédéfinies
medium | small | x-small | xx-small | large | x-large | xx-large | xxx-large | smaller | larger
Pourcentages
Calculés d'après la taille de la police de l'élément parent.
Valeur initiale
medium
Héritée par défaut
Oui.
Computed value : lors d'une animation, la propriété font-size passe progressivement d'une valeur à une autre.
Module W3C
Module CSS - Polices de caractères
 🡇  
 🡅  
Statut du document: WD (document de travail)

Statut du document: WD (document de travail)

Statut du document: REC (recommandation)

Statut du document: REC (recommandation)

Statut du document: DEPR (Ancienne spécification, déclarée obsolète)

Schéma syntaxique de font-size.

Font-size property - Syntax diagramSyntax diagram of the font-size CSS property. See stylescss.free.fr for details. xx-small xx-small x-small x-small small small medium medium large large x-large x-large xx-large xx-large xxx-large xxx-large smaller smaller larger larger length / % length / % math mathfont-size:;font-size:;
Schéma syntaxique de la propriété font-size
Syntaxe détaillée

Sur le schéma, les termes en gras sont les mots prédéfinis de CSS, les autres termes sont décrits ci-dessous :

  • length est une valeur numérique positive suivie d'une des unités de dimension.
  • % est un pourcentage calculé par rapport à la taille des caractères de l'élément parent.

Description.

La propriété font-size définit la taille des caractères.

La taille réelle des caractères peut être sensiblement différente de celle qui est demandée, à cause de font-size-adjust. Néanmoins les enfants héritent de la valeur calculée de font-size non affectée par font-size-adjust, sans quoi l'effet de font-size-adjust serait appliqué deux fois.

Pour préserver la lisibilité, les tailles de polices inférieures à 9 pixels ne devraient jamais être utilisés.

Pour les polices variables, la taille de police est un facteur de em. Pour les polices non variables, la taille est convertie en unités absolues, et comparée à celle déclarée dans la police.

Les différents usages de font-size.

Le mot font-size correspond à une propriété, permettant de choisir une taille de caractères (ce qui est décrit sur cette page), mais également à un descripteur utilisable avec les directives suivantes :

  • @font-face : Définit tous les paramètres d'une police de caractères téléchargeable.

Valeurs pour font-size.

  • font-size: xx-small; font-size: x-small; font-size: small; font-size: medium; font-size: large; font-size: x-large; font-size: xx-large; font-size: xxx-large;

    Tailles de caractères prédéfinies par CSS. La valeur par défaut est medium.
    Voici le rapport entre ces différentes tailles, relativement à medium.

    Valeur CSSRatio par
    rapport à
    medium
    Titre HTML
    équivalent
    Taille HTML
    équivalente
    xx-small 0.6 (3/5) h6font size="1"
    x-small 0.75 (3/4)
    small 0.89 (8/9) h5font size="2"
    medium 1 h4font size="3"
    large 1.2 (6/5) h3font size="4"
    x-large 1.5 (3/2) h2font size="5"
    xx-large 2 h1font size="6"
    xxx-large 3 font size="7"

    En CSS1, le coefficient multiplicateur entre deux tailles successives étaient préconisé à 1.5. En CSS2, il a été réduit pour se rapprocher de 1.2. Actuellement ce coefficient varie autour de 1.18 - 1.25.


    Voici ce que donnent ces différentes tailles sur votre navigateur:

    font-size:xx-small
    font-size:x-small
    font-size:small
    font-size:medium
    font-size:large
    font-size:x-large
    font-size:xx-large
    font-size:xxx-large
  • font-size: 12px;

    Une valeur numérique positive, suivie d'une unité de dimension (voir les unités de dimension). Certaines unités sont spécifiquement adaptées aux tailles de caractères : pt, em, rem, ch, ex, etc.
    La valeur doit être positive.
    Si la valeur est exprimée en pourcentages, ceux-ci sont calculées par rapport à la taille des caractères de l'élément parent.
    L'unité em est évaluée de la même façon, tandis que l'unité rem est évaluée par rapport à la taille des caractères de l'élément racine (balise html ou sélecteur :root).

    Élément parent, font-size:medium
    Élément enfant, font-size:150%
  • font-size: smaller; font-size: larger;

    La taille des caractères de l'élément ciblé est définie par rapport à la taille des caractères de l'élément parent.

    Si l'élément parent a une taille de caractères définie d'après une valeur prédéfinie (de xx-small à xxx-large), la valeur smaller correspond à la taille prédéfinie immédiatement inférieure.
    Et larger correspond à la taille prédéfinie immédiatement supérieure.

    Si l'élément parent est dans une taille de caractères non prédéfinie, le navigateur calcule la taille des caractères de l'élément ciblé en appliquant un coefficient.

    Élément parent, font-size:medium
    Élément enfant, font-size:larger
    Élément enfant, font-size:smaller
  • font-size: math;

    Des règles spécifiques à l'écriture des formules mathématiques sont appliquées pour déterminer la taille des caractères : la taille de la police varie en fonction de la propriété math-depth.

    Exemple :

    x + 5 2

Valeurs communes :

font-size: initial (medium) font-size: inherit font-size: revert font-size: revertLayer font-size: unset

Ces valeurs sont décrites plus en détail sur leur page respective : initial, inherit, revert, revert-layer, unset.

Animation de la propriété font-size.

L'animation de la taille des caractères est très fluide, même si l'animation est décrite avec les valeurs prédéfinies (small, medium, etc.) car ces valeurs sont équivalentes à des nombres, ce qui permet de calculer autant de valeurs intermédiaires que nécessaires.

Buvez ce whisky que le patron juge fameux

Manipulation de la propriété font-size par Javascript.

Modifier la valeur de font-size en Javascript.

Le code ci-dessous, en Javascript, modifie la valeur de font-size pour un élément el. Le nom de la propriété peut être écrit en kebab-case (un tiret pour séparer les mots) ou en camel-case (une majuscule pour séparer les mots), Javascript acceptant les deux syntaxes.

Javascript
let el = document.getElementById('id'); let value = el.style['font-size']; // ou let el = document.getElementById('id'); let value = el.style.fontSize;

Lire en Javascript la valeur de font-size.

Pour que ce code fonctionne, la propriété doit avoir été affectée directement à l'élément lui-même et non pas via un sélecteur CSS. La valeur est renvoyée telle qu'elle a été définie : dans la même unité, ou éventuellement une valeur prédéfinie (small, medium, etc.).

Javascript
let el = document.getElementById('id'); el.style['font-size'] = '2rem'; // ou let el = document.getElementById('id'); el.style.fontSize = '2rem';

Lire la valeur calculée de font-size en Javascript.

La valeur calculée est celle qui résulte de l'évaluation des unités relatives, en particulier dans le cas des tailles de polices, des unités telles que rem, em, etc. Si aucune valeur de font-size n'est définie pour cet élément, la valeur calculée est déterminée par héritage. La valeur calculée est rendue en pixels, quelque soit l'unité utilisée pour la définir.

Modifier la valeur de la propriété font-size avec JQuery.

JQuery

$('#id').css('font-size', '2rem');
// ou
$('#id').css('fontSize', '2rem');

Lire la valeur calculée de la propriété font-size avec JQuery.

Comme en Javascript, la valeur est retournée en pixels, quelque soit l'unité utilisée pour la définir.

JQuery
let value = $('#id').css('font-size');

Autres exemples de code.

D'autres exemples de code Javascript et JQuery sont donnés sur la page Javascript et CSS.

Testez vous-même.

Les boutons ci-dessous appliquent la valeur saisie à la propriété font-size et affichent ensuite soit la valeur telle qu'elle a été appliquée, soit la valeur calculée. Cette deuxième option permet de voir comment est mémorisée (sérialisée) la valeur de font-size. On constate en particulier toutes les unités sont converties en pixels.

Simulateur avec la propriété font-size.

font-size :
Portez ce vieux Whisky au juge blond qui fume

Compatibilité et prise en charge.

Colonne 1
Support de la propriété font-size permettant de définir la taille de la police de caractères.
Colonne 2
Support de la valeur xxx-large pour la propriété font-size. Cette valeur a été ajourée après la définition initiale de la propriété, mais sa prise en charge est maintenant correcte.
1
Propriété
font-size
2
Valeur
xxx-large
Estimation de la prise en charge globale.
96%
93%

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

Évolution de font-size.

font-size est une propriété dont la définition est ancienne (déjà présente sur la première spécification du langage CSS). Quelques valeurs ont été ajoutées au fil des nouvelles versions de la spécification.

Voir aussi, à propos des polices de caractères.

Les propriétés qui concernent les polices de caractères sont regroupées dans le module CSS Fonts Module. Vous trouvez leur définition ci-dessous :

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-variant-position
Mise en exposant ou en indice des caractères.
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.