Box Sizing CSS
- Page précédente CSS @property
- Page suivante Flexbox CSS
Box Sizing CSS
CSS box-sizing
Cette propriété nous permet d'inclure la marge interne (remplissage) et la bordure dans la largeur et la hauteur totales de l'élément.
Si la propriété CSS box-sizing n'est pas spécifiée
Par défaut, la largeur et la hauteur de l'élément sont calculées ainsi :
- width + padding + border = largeur réelle de l'élément
- height + padding + border = hauteur réelle de l'élément
Cela signifie : lorsque vous définissez la largeur / hauteur d'un élément, l'élément apparaît généralement plus grand que ce que vous avez défini (parce que la bordure et la marge interne ont été ajoutées à la largeur / hauteur spécifiée de l'élément).
La figure suivante montre deux éléments <div> avec la même largeur et hauteur spécifiées :
(largeur de 300px, hauteur de 100px).
(largeur également de 300px, hauteur de 100px).
Les deux éléments <div> ci-dessus affichent des dimensions différentes dans le résultat final (car div2 a été configuré avec une marge interne) :
Exemple
.div1 { width: 300px; height: 100px; border: 1px solid blue; } .div2 { width: 300px; height: 100px; padding: 50px; border: 1px solid red; }
box-sizing
Cette propriété résout ce problème.
Si l'on utilise la propriété CSS box-sizing
box-sizing
Cette propriété nous permet d'inclure la marge interne et la bordure dans la largeur et la hauteur totales de l'élément.
Si l'élément a été configuré avec box-sizing: border-box;
Si la largeur et la hauteur incluent la marge interne et la bordure :
L'exemple suivant est identique à l'exemple précédent, les deux éléments <div> ont tous deux été configurés box-sizing: border-box;
:
Exemple
.div1 { width: 300px; height: 100px; border: 1px solid blue; box-sizing: border-box; } .div2 { width: 300px; height: 100px; padding: 50px; border: 1px solid red; box-sizing: border-box; }
En raison de l'utilisation box-sizing: border-box;
de manière si efficace que de nombreux développeurs souhaitent que tous les éléments du site fonctionnent de cette manière.
Le code suivant garantit que tous les éléments peuvent être ajustés de cette manière plus intuitive. De nombreux navigateurs utilisent déjà cette méthode pour de nombreux éléments de formulaire box-sizing: border-box;
(mais pas tous - c'est pourquoi input et textarea semblent différents lorsque width: 100%;).
L'application à tous les éléments est sécurisée et sage :
Exemple
* { box-sizing: border-box; }
Propriété Box Sizing CSS
Attribut | Description |
---|---|
box-sizing | Définir la méthode de calcul de la largeur et de la hauteur des éléments : doivent-ils inclure la marge interne (padding) et la bordure ? |
- Page précédente CSS @property
- Page suivante Flexbox CSS