--- title: box-sizing slug: Web/CSS/box-sizing tags: - Boîtes - CSS - Mocèle de Boîte CSS - Propriété CSS - Reference - border-box - box-sizing - content-box - height - modèle de boîte - size - width translation_of: Web/CSS/box-sizing ---
La propriété CSS box-sizing
définit la façon dont la hauteur et la largeur totale d'un élément est calculée (avec le modèle de boîte CSS).
Le code source de cet exemple interactif est disponible dans un dépôt GitHub. Si vous souhaitez contribuez à ces exemples, n'hésitez pas à cloner https://github.com/mdn/interactive-examples et à envoyer une pull request !
En CSS, la largeur et la hauteur affectées à un élément s'appliquent par défaut à la boîte de contenu (content box) de l'élément. Si l'élément possède une bordure (border) ou du remplissage (padding), celui-ci est ajouté à la largeur et/ou à la hauteur de la boîte affichée à l'écran. Cela signifie qu'il faut ajuster les valeurs de hauteur et de largeur afin qu'elles permettent d'ajouter n'importe quelle bordure ou n'importe quel remplissage qui serait ajouté par la suite.
La propriété box-sizing
peut être utilisée afin d'ajuster ce comportement :
content-box
est la valeur par défaut et correspond au comportement par défaut décrit ci-avant. Si on définit un élément avec une largeur de 100 pixels, la boîte de contenu de cet élément mesurera 100 pixels de large et la largeur de la bordure et/ou du remplissage sera alors ajoutée pour constituer la largeur finalement affichée.border-box
indique au navigateur de prendre en compte la bordure et le remplissage dans la valeur définie pour la largeur et la hauteur. Autrement dit, si on définit un élément avec une largeur de 100 pixels, ces 100 pixels inclueront la bordure et le remplissage éventuellement ajoutés et c'est le contenu de la boîte qui sera compressé pour absorber cette largeur supplémentaire. Cela permet généralement de simplifier le dimensionnement des éléments.Note : Il est souvent utile de définir box-sizing
à border-box
aux éléments de mise en page. Cela facilite grandement la gestion de la taille des éléments et élimine généralement un certain nombre d'écueils que vous pouvez rencontrer lors de la mise en page de votre contenu. D'autre part, lors de l'utilisation de la position: relative
ou position: absolute
, l'utilisation de box-sizing: content-box
permet aux valeurs de positionnement d'être relatives au contenu, et indépendantes des changements de taille des bordures et de la taille de la marge interne, ce qui est parfois souhaitable.
/* Valeurs avec un mot-clé */ box-sizing: content-box; box-sizing: border-box; /* Valeurs globales */ box-sizing: inherit; box-sizing: initial; box-sizing: unset;
La propriété box-sizing
peut être définie avec l'un des mots-clés suivants.
content-box
.box {width: 350px; border:10px solid black;}
fournira une boîte dont la largeur vaut 370px
.border-box
border-box
pour faire disparaître l'élément. Les dimensions de l'élément sont calculées comme la somme de la bordure, du remplissage (padding) et du contenu.{{csssyntax}}
Note : La valeur padding-box
a été dépréciée.
div { width: 160px; height: 80px; padding: 20px; border: 8px solid red; background: yellow; } .content-box { box-sizing: content-box; /* Largeur totale : 160px + (2 * 20px) + (2 * 8px) = 216px Hauteur totale : 80px + (2 * 20px) + (2 * 8px) = 136px Largeur de la boîte de contenu : 160px Hauteur de la boîte de contenu : 80px */ } .border-box { box-sizing: border-box; /* Largeur totale : 160px Hauteur totale : 80px Largeur de la boîte de contenu : 160px - (2 * 20px) - (2 * 8px) = 104px Hauteur de la boîte de contenu : 80px - (2 * 20px) - (2 * 8px) = 24px */ }
<div class="content-box">Content box</div> <br> <div class="border-box">Border box</div>
{{EmbedLiveSample("Exemples","auto","200")}}
Spécification | État | Commentaires |
---|---|---|
{{SpecName('CSS3 Basic UI', '#box-sizing', 'box-sizing')}} | {{Spec2('CSS3 Basic UI')}} | Définition initiale. |
{{cssinfo}}
{{Compat("css.properties.box-sizing")}}