Maîtriser le Modèle de Boîte (Box Model) en CSS pour le Web Design

En développement web, la mise en page repose sur trois piliers fondamentaux : le modèle de boîte (Box Model), le positionnement et le flottement. Comprendre le modèle de boîte est essentiel pour structurer correctement les interfaces utilisateur.

Qu'est-ce que le Box Model ?

Le concept du modèle de boîte en CSS stipule que chaque élément HTML est considéré comme une boîte rectangulaire. Cette boîte encapsule le contenu et définit l'espace qui l'entoure. Elle se compose de quatre parties distinctes :

  • Contenu (Content) : Là où le texte et les images apparaissent.
  • Remplissage (Padding) : L'espace entre le contenu et la bordure.
  • Bordure (Border) : Une ligne entourant le remplissage et le contenu.
  • Marge (Margin) : L'espace extérieur à la bordure, séparant l'élément des autres.

La Bordure (Border)

La propriété border permet de définir l'aspect du contour d'un élément. Elle regroupe l'épaisseur, le style et la couleur.

/* Syntaxe : border-width border-style border-color */
.mon-element {
   border: 2px solid #333;
}

Styles de bordure courants

Valeur Description
solid Ligne continue simple.
dashed Ligne composée de tirets.
dotted Ligne composée de points.

Il est également possible de cibler un côté spécifique :

.bloc-info {
   border-top: 4px solid blue;
   border-bottom: 1px dashed gray;
}

Fusion des bordures de tableau

Pour obtenir des lignes fines dans un tableau, on utilise border-collapse :

table {
   border-collapse: collapse;
}
td, th {
   border: 1px solid black;
}

La Marge Interne (Padding)

Le padding définit l'espace à l'intérieur de la boîte. Voici les différentes manières de l'écrire :

  • padding: 10px; (4 côtés)
  • padding: 10px 20px; (Haut/Bas, Gauche/Droite)
  • padding: 10px 20px 30px; (Haut, Gauche/Droite, Bas)
  • padding: 5px 10px 15px 20px; (Haut, Droite, Bas, Gauche - sens horaire)

Impact sur les dimensions

Par défaut, l'ajout de padding augmente la taille totale de l'élément. Si vous définissez une largeur de 200px et un padding de 20px de chaque côté, la largeur totale réelle sera de 240px.

Solution : Soustraire la valeur du padding de la largeur initiale ou utiliser box-sizing: border-box;.

La Marge Externe (Margin)

Le margin gère l'espace entre les éléments adjacents. Pour centrer un bloc horizontalement, on utilise souvent :

.conteneur-centre {
   width: 800px;
   margin: 0 auto;
}

Fusion des marges (Margin Collapsing)

Lorsque deux marges verticales se rencontrent (par exemple entre deux parargaphes), elles ne s'additionnent pas. La valeur la plus élevée est conservée.

Pour les éléments imbriqués, la marge du fils peut "fuir" sur le parent. Pour éviter cela, on peut ajouter une bordure au parent, un padding, ou la propriété overflow: hidden;.

Réinitialisation des styles par défaut

Les navigateurs appliquent des marges et paddings par défaut. Il est recommandé de les remettre à zéro en début de projet :

* {
   margin: 0;
   padding: 0;
   box-sizing: border-box;
}

Améliorations Visuelles

Bordures Arrondies

La propriété border-radius permet de créer des coins arrondis ou des cercles parfaits.

.bouton-rond {
   width: 100px;
   height: 100px;
   border-radius: 50%; /* Crée un cercle */
}

Ombres de boîte et de texte

Ajoutez de la profondeur avec box-shadow et text-shadow.

.carte {
   /* h-offset v-offset flou étalement couleur */
   box-shadow: 5px 5px 15px rgba(0,0,0,0.2);
}

.titre-lumineux {
   text-shadow: 2px 2px 4px #FF0000;
}

Gestion des Listes

Pour supprimer les puces par défaut des balises <li>, on utilise :

ul {
   list-style: none;
}

Étiquettes: CSS3 web-design frontend layout box-model

Publié le 11 juillet à 19h31