Modèle de boîte
Le modèle de boîte désigne la manière dont le navigateur gère l'affichage des blocs de contenu (éléments affichés en display:block
). Il permet de définir:
- les marges extérieures (utilisées pour espacer les éléments entre eux);
- la bordure qui entour l'élément;
- les marges intérieures (utilisées pour espacer le contenu du bord du bloc);
- les dimensions du contenu.
important
Les propriétés margin
, border
et padding
peuvent être définie de manière globale pour les quatre côtés de la boîte ou séparément pour chaque côté (haut, droite, bas, gauche).
#
Marges extérieuresLes marges extérieures permettent d'espacer des blocs entre eux. Par défaut, certains éléments HTML comme les paragraphes ou les titres ont des marges verticales prédéfinies. Vous pouvez modifier ces valeurs en créant une règle CSS adéquate.
Attention, les marges de deux éléments consécutifs, verticalement ou horizontalement, se superposent. Dans le cas d'éléments qui ont des marges prédéfinies, assurez-vous d'avoir défini les espacements de tous les éléments.
- CSS
- HTML
#
BorduresLe paramètre ``border``` permet de définir le style de la bordure qui entour le bloc. Il est composé de trois valeurs:
- l'épaisseur de la bordure;
- son style (solide, traitillé, pointillé);
- sa couleur.
- CSS
- HTML
#
Marges intérieuresLes marges intérieures définissent l'espacement entre la bordure et le contenu.
- CSS
- HTML
#
DimensionsLes dimensions du contenu du bloc peuvent être définies grâce aux attributs width
et height
. Par défaut, la largeur d'un bloc est toujours de 100%
et sa hauteur automatiquement définie en fonction de son contenu.
important
Sauf dans le cas d'éléments dont la hauteur est précisément définie dans la maquette, on laissera généralement le paramètre height
au mode automatique afin d'éviter les débordements de contenu.
- CSS
- HTML
#
box-sizingPar défaut, les paramètres de largeur et de hauteur définissent les dimensions du contenu d'un bloc et non pas de son pourtour. Les marges intérieures et les bordures vont venir s'ajouter à la valeur définie. Cela peut causer des problèmes de mise en page, par exemple dans le cas d'un élément dont la largeur est définie à 100%.
Le problème est mis en évidence dans l'exemple ci-dessous:
box-sizing: content-box (valeur par défaut)
width: 100%
padding: 0;
box-sizing: content-box (valeur par défaut)
width: 100%
padding: 25px;
box-sizing: border-box (valeur par défaut)
width: 100%
padding: 25px;
Afin de pallier à cette situation et pour simplifier la gestion de la dimension des blocs, il est recommandé de modifier le comportement par défaut de tous les blocs de votre site afin que les paramètres width
et height
incluent les bordures et les marges intérieures. Pour ce faire, il faut ajouter la règle suivante dans votre fichier CSS (si possible au tout début du fichier).