Tutoriel CSS

CSS ACCUEIL Présentation CSS Syntaxe CSS Sélecteurs CSS CSS Comment faire Commentaires CSS Couleurs CSS Arrière-plans CSS Bordures CSS Marges CSS Rembourrage CSS CSS Hauteur/Largeur Modèle de boîte CSS Aperçu CSS Texte CSS Polices CSS Icônes CSS Liens CSS Listes CSS CSS Tables Affichage CSS CSS Max-width Poste CSS Index Z CSS Débordement CSS Flottant CSS Bloc en ligne CSS Alignement CSS Combinateurs CSS Pseudo-classe CSS Pseudo-élément CSS Opacité CSS Barre de navigation CSS Listes déroulantes CSS Galerie d'images CSS Sprites d'image CSS Sélecteurs d'attributs CSS Formulaires CSS Compteurs CSS Mise en page du site Web CSS Unités CSS Spécificité CSS CSS !important Fonctions mathématiques CSS

CSS avancé

Coins arrondis CSS Images de bordure CSS Arrière-plans CSS Couleurs CSS Mots-clés de couleur CSS Dégradés CSS Ombres CSS Effets de texte CSS Polices Web CSS Transformations CSS 2D Transformations 3D CSS Transitions CSS Animation CSS Info-bulles CSS CSS Style Images Réflexion d'image CSS Ajustement d'objet CSS Position d'objet CSS Masquage CSS Boutons CSS Pagination CSS CSS plusieurs colonnes Interface utilisateur CSS Variables CSS Dimensionnement des boîtes CSS Requêtes média CSS Exemples CSS MQ Boîte flexible CSS

CSS réactif

RWD Introduction Fenêtre RWD Affichage de la grille RWD Requêtes multimédia RWD Images RWD Vidéos RWD Cadres RWD Modèles RWD

Grille CSS

Grille d'introduction Conteneur de grille Élément de grille

CSS SASS

Tutoriel SASS

Exemples CSS

Modèles CSS Exemples CSS CSS Quiz Exercices CSS Certificat CSS

Références CSS

Référence CSS Sélecteurs CSS Fonctions CSS Audit de référence CSS Polices sécurisées pour le Web CSS CSS animable Unités CSS Convertisseur CSS PX-EM Couleurs CSS Valeurs de couleur CSS Valeurs CSS par défaut Prise en charge du navigateur CSS

Dimensionnement des boîtes CSS


Dimensionnement des boîtes CSS

La propriété CSS box-sizingnous permet d'inclure le rembourrage et la bordure dans la largeur et la hauteur totales d'un élément.


Sans la propriété CSS box-sizing

Par défaut, la largeur et la hauteur d'un élément sont calculées comme suit :

width + padding + border = largeur réelle d'un élément
height + padding + border = hauteur réelle d'un élément

Cela signifie : Lorsque vous définissez la largeur/hauteur d'un élément, l'élément apparaît souvent plus grand que vous ne l'avez défini (parce que la bordure et le rembourrage de l'élément sont ajoutés à la largeur/hauteur spécifiée de l'élément).

L'illustration suivante montre deux éléments <div> avec les mêmes largeur et hauteur spécifiées :

Cette div est plus petite (la largeur est de 300px et la hauteur est de 100px).

Cette div est plus grande (la largeur est également de 300px et la hauteur est de 100px).

Les deux éléments <div> ci-dessus se retrouvent avec des tailles différentes dans le résultat (car div2 a un rembourrage spécifié) :

Exemple

.div1 {
  width: 300px;
  height: 100px;
  border: 1px solid blue;
}

.div2 {
  width: 300px;
  height: 100px;
  padding: 50px;
  border: 1px solid red;
}

La box-sizingpropriété résout ce problème.



Avec la propriété CSS box-sizing

La box-sizingpropriété nous permet d'inclure le rembourrage et la bordure dans la largeur et la hauteur totales d'un élément.

Si vous définissez box-sizing: border-box;un élément, le rembourrage et la bordure sont inclus dans la largeur et la hauteur :

Les deux divs ont la même taille maintenant !

Hourra !

Voici le même exemple que ci-dessus, avec box-sizing: border-box; ajouté aux deux éléments <div> :

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;
}

Étant donné que le résultat de l'utilisation de box-sizing: border-box;est tellement meilleur, de nombreux développeurs souhaitent que tous les éléments de leurs pages fonctionnent de cette façon.

Le code ci-dessous garantit que tous les éléments sont dimensionnés de cette manière plus intuitive. De nombreux navigateurs utilisent déjà box-sizing: border-box;de nombreux éléments de formulaire (mais pas tous - c'est pourquoi les entrées et les zones de texte ont une largeur différente : 100 % ;).

Appliquer ceci à tous les éléments est sûr et sage :

Exemple

* {
  box-sizing: border-box;
}

Propriété de dimensionnement de la boîte CSS

Property Description
box-sizing Defines how the width and height of an element are calculated: should they include padding and borders, or not