edubun
Français

Le modèle de boîte

Donne à une boîte width: 200px, 16px de padding et une bordure de 2px : par défaut, elle occupe 236 pixels de large à l'écran, et non 200.

Chaque élément est une boîte

Pour mettre en page, le navigateur transforme chaque élément en rectangle. Chaque boîte a quatre couches, de l'intérieur vers l'extérieur. La zone de contenu contient le texte ou l'image. Le padding (marge intérieure) est l'espace à l'intérieur de la boîte, entre le contenu et la bordure, et il prend la couleur de fond de la boîte. La bordure est une ligne autour du padding. La marge est l'espace à l'extérieur de la bordure qui repousse les autres boîtes ; elle est toujours transparente. Les outils de développement du navigateur dessinent exactement ce schéma quand tu inspectes un élément, avec les valeurs indiquées.

Contenu, padding, bordure et marge. Avec le dimensionnement content-box par défaut, width ne fixe que le contenu : 200 + 16 + 16 + 2 + 2 = 236 pixels de large.

Le raccourci pour les quatre côtés

padding, margin et border-width acceptent une à quatre valeurs, dans le sens des aiguilles d'une montre à partir du haut. padding: 16px règle les quatre côtés. padding: 8px 16px met 8 en haut et en bas, et 16 à gauche et à droite. padding: 4px 8px 12px 16px règle le haut, la droite, le bas et la gauche, dans cet ordre. On peut aussi régler chaque côté séparément, comme avec margin-top. border: 2px solid #333 règle ensemble l'épaisseur, le style et la couleur ; sans un style comme solid ou dashed, aucune bordure n'est dessinée.

box-sizing : le réglage que presque tout le monde change

Par défaut, width et height fixent seulement la taille de la zone de contenu, et le padding et la bordure s'ajoutent par-dessus. C'est le modèle content-box, et il complique les mises en page : deux boîtes en width: 50% avec le moindre padding ne tiennent plus côte à côte. Avec box-sizing: border-box, la largeur inclut le padding et la bordure, et la zone de contenu rétrécit pour leur faire de la place. Beaucoup de feuilles de style commencent par l'appliquer à tous les éléments avec *, *::before, *::after { box-sizing: border-box; }.

Boîtes de bloc et boîtes en ligne

Les boîtes se comportent différemment selon leur valeur de display. Les boîtes de bloc, comme p, h1 et section, commencent sur une nouvelle ligne et s'étirent sur toute la largeur de leur conteneur. Les boîtes en ligne, comme a, strong et span, se placent dans une ligne de texte ; width et height ne s'y appliquent pas, et leurs padding et marges verticaux n'écartent pas les autres lignes. display: inline-block est entre les deux : la boîte se place dans la ligne comme un mot mais respecte la largeur, la hauteur et le padding, ce qui convient aux petites étiquettes et aux boutons.

Les marges qui fusionnent

Une règle surprend presque tout le monde. Quand la marge basse d'un bloc rencontre la marge haute du suivant, elles ne s'additionnent pas : la plus grande l'emporte. Un paragraphe avec margin-bottom: 20px suivi d'un titre avec margin-top: 30px se retrouve à 30 pixels, et non à 50. On appelle cela la fusion des marges ; elle ne concerne que les marges verticales entre blocs dans le flux normal, pas à l'intérieur des conteneurs flex ou grid. Pour centrer un bloc horizontalement, donne-lui une width ou une max-width et margin: 0 auto : les deux marges latérales automatiques se partagent équitablement l'espace libre.

Les contours (outline) sont dessinés à l'extérieur de la bordure et n'occupent pas de place : c'est pourquoi les navigateurs les utilisent pour l'anneau de focus clavier. Si tu supprimes un contour avec outline: none, remplace-le par un autre style de focus bien visible.
zone de contenuLà où se trouvent le texte et les images
paddingEspace à l'intérieur de la bordure ; laisse voir le fond
bordureLigne autour du padding ; a besoin d'un style
margeEspace transparent à l'extérieur de la bordure
box-sizing: border-box (boîte bordure comprise)width inclut le padding et la bordure
fusion des margesMarges verticales qui se touchent : la plus grande l'emporte
inline-blockSe place dans la ligne mais respecte la largeur et le padding
  1. Range les couches de l'intérieur vers l'extérieur.
  2. content-box : width 300px, padding 20px, bordure 5px. Largeur totale ?
  3. border-box : width 300px, padding 20px, bordure 5px. Quelle est la largeur de la zone de contenu ?
  4. Que règle margin: 10px 20px ?
    • 10 en haut et en bas, 20 à gauche et à droite
    • 10 à gauche et à droite, 20 en haut et en bas
    • 10 en haut, 20 en bas
  5. padding: 1px 2px 3px 4px : combien à gauche ?
  6. Une margin-bottom de 20px rencontre une margin-top de 30px. Quelle est la taille de l'écart ?
  7. Pourquoi border: 2px #333 ne dessine-t-il rien ?
    • Il n'y a pas de style de bordure comme solid
    • La couleur est trop foncée
    • Les bordures ont besoin d'une marge
  8. Quelle valeur de display permet à un span d'avoir une largeur et un padding vertical tout en restant dans la ligne ?
    • inline-block
    • inline
    • none
  9. Comment centrer horizontalement un bloc de 600px de large ?
    • margin: 0 auto
    • padding: auto
    • text-align: center on the block
  10. Quelle partie de la boîte affiche la couleur de fond ?
    • Le contenu et le padding (et sous la bordure)
    • Seulement le contenu
    • La marge aussi
L'essentiel
  • Contenu, padding, bordure, marge.
  • content-box ajoute le padding et la bordure à width ; border-box les inclut.
  • Le raccourci tourne dans le sens des aiguilles d'une montre à partir du haut ; les marges verticales qui se touchent fusionnent.
Sources de ce cours (6)
  • W3C CSS Working Group specifications: CSS Snapshot 2025, Selectors Level 4, CSS Cascading and Inheritance Level 5, CSS Color Level 4, CSS Values and Units Level 4, CSS Box Model Level 3, CSS Box Sizing Level 3, CSS Fonts Level 4, CSS Flexible Box Layout Level 1, CSS Grid Layout Level 2, Media Queries Level 4 and Level 5 (w3.org/TR/, checked 2026-10-17)
  • MDN Web Docs, Learn web development: CSS styling basics and CSS layout, and the CSS reference (developer.mozilla.org/en-US/docs/Learn_web_development/Core/Styling_basics, .../Core/CSS_layout, developer.mozilla.org/en-US/docs/Web/CSS, checked 2026-10-17)
  • W3C, CSS history and CSS1 Recommendation of 17 December 1996 (w3.org/Style/CSS20/history.html, w3.org/press-releases/1996/css1-rec, checked 2026-10-17)
  • W3C WCAG 2.2, success criteria 1.4.3 Contrast (Minimum)
  • 1.4.8 Visual Presentation, 1.4.10 Reflow, 1.4.12 Text Spacing (w3.org/TR/WCAG22/, checked 2026-10-17)
  • every code exercise checked with a Playwright probe against a reference solution.

Consulté le: 2026-10-17