Propriété box-sizing

La propriété box-sizing permet de modifier la méthode de calcul des dimensions d'un élément.

Par défaut, l'ajout de padding élargit l'élément : si nous avons défini une largeur width de 100px et un padding-left de 20px, alors la largeur réelle de l'élément sera de 120px.

Et si nous définissons également une border-left de 10px, alors la largeur réelle de l'élément deviendra 130px. C'est-à-dire que le padding et la border élargissent le bloc (en largeur et en hauteur). Ce comportement peut être modifié à l'aide de box-sizing.

Syntaxe

csssélecteur {
  box-sizing: content-box | border-box;
}

Valeurs

Valeur Description
content-box Le padding et la border élargissent le bloc.
border-box Ni le padding, ni la border n'élargissent le bloc.

Valeur par défaut : content-box.

Exemple . Comportement standard

Actuellement, les deux blocs ont la même hauteur et la même largeur, cependant le second bloc a un padding défini, alors que le premier n'en a pas. Regardez comment leurs dimensions diffèrent :

html<div id="elem1">elem1</div>
<div id="elem2">elem2</div>
css#elem1 {
  width: 300px;
  height: 100px;
  margin-bottom: 10px;
  background: #f1f1f1;
}
#elem2 {
  padding: 50px;
  width: 300px;
  height: 100px;
  background: #f1f1f1;
}

Результат:

Exemple . Comportement standard

Actuellement, les deux blocs ont la même hauteur et la même largeur, cependant le second bloc a une bordure de 10px, alors que le premier n'en a pas. Regardez comment leurs dimensions diffèrent :

html<div id="elem1">elem1</div>
<div id="elem2">elem2</div>
css#elem1 {
  width: 300px;
  height: 100px;
  background: #f1f1f1;
}
#elem2 {
  border: 10px solid black;
  width: 300px;
  height: 100px;
  background: #f1f1f1;
}

Результат:

Exemple . Comportement standard

Actuellement, le second bloc a à la fois du padding et une bordure de 10px :

html<div id="elem1">elem1</div>
<div id="elem2">elem2</div>
css#elem1 {
  width: 300px;
  height: 100px;
  background: #f1f1f1;
}
#elem2 {
  padding: 50px;
  border: 20px solid black;
  width: 300px;
  height: 100px;
  background: #f1f1f1;
}

Результат:

Exemple . Valeur border-box

Ajoutons la valeur border-box pour la propriété box-sizing au second élément. Maintenant, les dimensions du premier et du second élément deviendront identiques :

html<div id="elem1">elem1</div>
<div id="elem2">elem2</div>
css#elem1 {
  width: 300px;
  height: 100px;
  background: #f1f1f1;
}
#elem2 {
  box-sizing: border-box;
  padding: 50px;
  border: 10px solid black;
  width: 300px;
  height: 100px;
  background: #f1f1f1;
}

Результат:

Voir aussi

  • la propriété outline,
    qui crée une bordure n'élargissant pas l'élément