Box-sizing - Propriété CSS

box-sizing

Résumé des caractéristiques de la propriété box-sizing

Description rapide
Définit le mode de calcul des dimensions de blocs : en incluant ou non les bordures et les marges intérieures.
Statut
Standard
Utilisable sur
HTML
Valeurs prédéfinies
content-box | border-box
Pourcentages
Ne s'appliquent pas.
Valeur initiale
content-box
Héritée par défaut
Non.
Type d'animation
Discrète : lors d'une animation, la propriété box-sizing passe d'une valeur à l'autre sans transition.
Module W3C
Module CSS - Dimensionnement des blocs
Références (W3C)
 🡇  
 🡅  
Statut du document: WD (document de travail)

Statut du document: REC (recommandation)

Schéma syntaxique de box-sizing.

box-sizing - Syntax DiagramSyntax diagram of the box-sizing CSS property. See stylescss.free.fr for details. content-box content-box border-box border-boxbox-sizing:;box-sizing:;
Schéma syntaxique de la propriété box-sizing
Cliquez sur le schéma pour plus de détails sur les valeurs

A quoi sert de la propriété box-sizing ?

La propriété box-sizing détermine comment sont calculées les dimensions des blocs. Plus précisément : est-ce que les bordures et les marges intérieures ( padding ) sont comptées dans la largeur ( width ) et la hauteur ( height ) des blocs.

Cette propriété ne peut prendre que une des deux valeurs content-box ou border-box. La différence est illustrée ci-dessous, elle concerne la façon de déterminer la largeur et la hauteur de l'élément.

Box-sizing: content-box Box-sizing: border-box

Bien que, pour des raisons historiques, la valeur par défaut soit content-box, il est plus intuitif de raisonner dans le mode border-box.

Cette propriété est une des rares qui puissent s'appliquer sans inconvénient au sélecteur étoile ( * ), d'autant plus que ce serait vraiment se compliquer la vie de mixer dans une même page les deux modes de dimensionnement.

Syntaxes pour box-sizing.

  • box-sizing: content-box;

    Valeur par défaut. C'est le contenu de l'élément qui détermine ses dimensions. Autrement dit la marge intérieure (padding) et l'épaisseur de la bordure ne sont pas comptées dans les dimensions de l'élément.

  • box-sizing: border-box;

    Les dimensions du bloc sont comptées en incluant les marges intérieures (padding) et l'épaisseur de la bordure.

  • box-sizing: padding-box;

    Les dimensions du bloc sont comptées en incluant les marges intérieures (padding) et en excluant l'épaisseur de la bordure.

    Cette valeur avait été proposée par Firefox mais n'a pas été standardisée. Il ne faut plus l'utiliser.

Valeurs communes à toutes les propriétés :

box-sizing: initial (content-box) box-sizing: inherit box-sizing: revert box-sizing: revertLayer box-sizing: unset

Les valeurs communes sont présentées sur ces pages : initial, inherit, revert, revert-layer, unset.

Animation de box-sizing.

L'animation de la propriété box-sizing semble peu pertinente mais est néanmoins possible : la propriété passera sans transition d'une valeur à l'autre.

Animation du mode de dimensionnement

 

 

 

 

Exemple interactif.

En mode content-box ces deux éléments n'ont pas la même taille à l'affichage bien que leurs propriétés width et height aient des valeurs identiques. C'est dû au fait qu'ils n'ont pas les mêmes épaisseurs de bordure, ni les mêmes marges intérieures.

La valeur border-box donne un comportement plus intuitif.

box-sizing :
width:250px;
height:120px;
padding:10px;
border-width:5px;
width:250px;
height:120px;
padding:5px;
border-width:1px;
 

Prise en charge par les navigateurs.

Il est rare de voir une propriété aussi bien reconnue par tous les navigateurs, y compris les navigateurs marginaux.

Colonne 1
Prise en charge de la propriété box-sizing et gestion correcte de son fonctionnement.
1
Propriété
box-sizing
Estimation de la prise en charge globale.
98%

Navigateurs sur ordinateurs :

Navigateurs sur mobiles :

Navigateurs obsolètes ou marginaux :

Internet Explorer

KaiOS Browser

Opéra Mobile

Opéra

Firefox pour Androïd

Samsung Internet

Chrome

Edge

Firefox

Androïd Brower

Chrome pour Androïd

Baidu Browser

QQ Browser

Safari

Safari sur IOS

UC Browser pour Androïd

Opéra mini

Historique de la propriété box-sizing.

Bien que ancienne, la définition de la propriété box-sizing n'a pas évolué depuis.

Voir aussi...

Le module CSS Box Sizing Module de la spécification CSS (W3C) décrit les méthodes pour dimensionner les éléments et les propriétés en rapport.

Propriétés :

aspect-ratio
Définit le ratio entre la largeur et la hauteur de l'élément.
block-size
Définit la dimension d'un l'élément suivant la direction des blocs.
contain-intrinsic-block-size
Définit la dimension de l'élément dans la direction des blocs, lorsque l'élément est confiné.
contain-intrinsic-height
Définit la hauteur intrinsèque de l'élément lorsque celui-ci est confiné.
contain-intrinsic-inline-size
Définit la dimension de l'élément dans la direction des lignes, lorsque l'élément est confiné.
contain-intrinsic-size
Définit les dimensions de l'élément (blocs et lignes) lorsque l'élément est confiné.
contain-intrinsic-width
Définit la largeur intrinsèque de l'élément lorsque celui-ci est confiné.
height
Définit la hauteur de l'élément.
inline-size
Définit la dimension de l'élément dans la direction des lignes.
max-height
Définit une limite à la hauteur maximale de l'élément.
max-width
Définit la largeur maximale de l'élément.
min-height
Définit la hauteur minimale de l'élément.
min-width
Définit la largeur minimale de l'élément.
width
Définit la largeur de l'élément.

Fonctions :

fit-content()
Calcule une dimension en fonction du contenu et de limites.

Valeurs:

fit-content
Calcule la dimension d'un élément en fonction de son contenu et de la place disponible.
max-content
Donne la dimension d'un texte sans insérer de retours à la ligne.
min-content
Donne la dimension d'un texte après avoir inséré le plus possible de retours à la ligne.