Logo
  • Le modèle de boîte : chaque élément est une boîte
  • La différence entre margin et padding
  • Déclarer ses marges en CSS
  • Centrer un élément avec margin auto
  • La propriété box-sizing
  • Bonnes pratiques

Html5, les bases

2 jours • Créer et modifier des pages Web en HTML

Mon plan d'action

Jour 1 : Construire sa page en Html

Introduction

  • hello html5

Mise en route

  • introduction html
  • creation page html

Les balises HTML

  • insertion image
  • definition lien
  • creation tableau
  • creation formulaire
  • insertion audio video

Jour 2 : Gérer la forme avec les feuilles de styles CSS

Mise en route

  • css integration
  • css selecteur

Les propriétés CSS

  • css mise en couleur
  • css gestion texte
  • css marges espacements

Aller plus loin

  • publication site
← Retour à la formation

Bonjour
& bienvenue !

Veuillez entrer le mot de passe pour accéder au contenu de la formation.

(Mon email si vous avez une question)

Les marges et espacements en CSS

Maîtriser les marges externes (margin) et internes (padding)

Le modèle de boîte : chaque élément est une boîte

Schéma du modèle de boîte CSS : contenu, padding, border, margin
En CSS, chaque élément HTML est représenté comme une boîte rectangulaire.

Avant de parler de margin et padding, il faut comprendre que chaque élément HTML (titre, paragraphe, image, div) est en réalité une boîte composée de quatre couches, de l’intérieur vers l’extérieur :

  1. Le contenu : le texte, l’image, ce que l’élément affiche
  2. Le padding (marge interne) : l’espace entre le contenu et la bordure
  3. La bordure (border) : le cadre autour de l’élément
  4. Le margin (marge externe) : l’espace entre la bordure et les éléments voisins
Ouvrez l’inspecteur de votre navigateur (F12) et survolez n’importe quel élément : vous verrez ce schéma en couleurs. C’est le meilleur moyen de visualiser le modèle de boîte.

La différence entre margin et padding

Bouée dans l'eau eau  d'une piscine
Photo de KoolShooters sur Pexels
Privilégiez rem pour des espacements cohérents et responsifs.

Ces deux propriétés gèrent des espacements, mais à des endroits différents de la boîte. Les valeurs de marges peuvent s’exprimer en différentes unités : px (fixe), rem ou em (relative à la taille de police), % (relative au conteneur parent). On distingue :

  • padding (marge interne) — crée de l’espace à l’intérieur de l’élément, entre le contenu et la bordure. Le padding est coloré par le background-color de l’élément.
  • margin (marge externe) — crée de l’espace à l’extérieur de l’élément, entre sa bordure et les éléments voisins. Le margin est toujours transparent.
// Différence  etre padding & margin
.carte {
  background-color: #f0f0f0;
  border: 2px solid #333;

  padding: 1.5rem;// espace INTÉRIEUR : le texte ne colle pas à la bordure
  margin: 2rem;// espace EXTÉRIEUR : la carte ne colle pas aux éléments voisins
}
Le padding, c’est le rembourrage à l’intérieur d’un colis. Le margin, c’est la distance entre deux colis sur l’étagère.

Déclarer ses marges en CSS

Schéma de l'ordre d'application des marges
L'ordre de déclaration des valeurs de marge

La notation raccourcie : 1, 2, 3 ou 4 valeurs

Les propriétés margin et padding acceptent de 1 à 4 valeurs. Selon le nombre de valeurs, elles s’appliquent différemment :

// 4 valeurs : haut, droite, bas, gauche (sens des aiguilles d'une montre)
.exemple-4 {
  margin: 1rem 2rem 3rem 4rem;
  // haut: 1rem | droite: 2rem | bas: 3rem | gauche: 4rem
}

// 3 valeurs : haut, droite-gauche, bas
.exemple-3 {
  padding: 1rem 2rem 3rem;
  // haut: 1rem | droite ET gauche: 2rem | bas: 3rem
}

// 2 valeurs : haut-bas, droite-gauche
.exemple-2 {
  margin: 2rem 4rem;
  // haut ET bas: 2rem | droite ET gauche: 4rem
}

// 1 valeur : identique sur les 4 côtés
.exemple-1 {
  padding: 1.5rem;
  // les 4 côtés: 1.5rem
}

Cibler un seul côté

Astuce pour l’ordre des 4 valeurs : pensez à une horloge : on part du haut et on tourne dans le sens des aiguilles.

Quand vous ne voulez modifier qu’un seul côté, utilisez les propriétés spécifiques. Les propriétés individuelles sont : margin-top, margin-right, margin-bottom, margin-left (et leurs équivalents padding-top, padding-right, padding-bottom, padding-left).

// Margin sur un seul côté
h1 {
  margin-bottom: 2rem;// espace sous le titre uniquement
}

// Padding sur un seul côté
li {
  padding-left: 1.5rem;// retrait intérieur à gauche
}

// On peut combiner les deux
blockquote {
  margin-top: 2rem;
  margin-bottom: 2rem;
  padding-left: 1.5rem;
  border-left: 4px solid navy;
}

Centrer un élément avec margin auto

Schéma du centrage horizontal avec margin auto
Centrage horizontal avec margin: 0 auto
Un élément sans largeur occupe tout l’espace disponible, il n’y a alors rien à centrer.

L’une des utilisations les plus fréquentes de margin est le centrage horizontal d’un bloc dans la page. La valeur auto demande au navigateur de répartir l’espace disponible équitablement à gauche et à droite. Pour que margin: 0 auto fonctionne, l’élément doit avoir une largeur définie (width ou max-width).

// Centrer un conteneur dans la page
.container {
  max-width: 800px;// le conteneur a une largeur maximale
  margin: 0 auto;// haut-bas: 0 | droite-gauche: auto (= centré)
}

La propriété box-sizing

schéma expliquant la différente entre l'application ou l'absence de la propriété box-sizing
Le comportement par défaut est content-box.

Par défaut, quand vous définissez width: 300px sur un élément, ces 300px correspondent uniquement au contenu. Le padding et la bordure viennent s’ajouter par-dessus, ce qui peut contrarier les calculs et les alignements.

// Comportement par défaut
.carte {
  width: 300px;
  padding: 20px;
  border: 2px solid black;
}
// Largeur réelle affichée : 300 + 20 + 20 + 2 + 2 = 344px

La propriété box-sizing: border-box change ce comportement : le padding et la bordure sont inclus dans la largeur définie. Le contenu se compresse pour laisser la place.

// Avec border-box : la largeur totale reste 300px
.carte {
  box-sizing: border-box;
  width: 300px;
  padding: 20px;
  border: 2px solid black;
}
// Largeur réelle affichée : 300px (tout compris)
schéma expliquant la différente entre l'application ou l'absence de la propriété box-sizing
Exemple avec un conteneur-parent de 900px

La bonne pratique : appliquer border-box à toute la page

* est le sélecteur universel : il cible tous les éléments de la page.

La grande majorité des développeurs appliquent border-box à l’ensemble des éléments de la page dès le début de leur feuille de style *. Associé à ::before et ::after, il garantit que même les pseudo-éléments héritent de border-box. Cette pratique est devenu un standard.

// Reset recommandé, à placer en tout début de votre CSS
*,
*::before,
*::after {
  box-sizing: border-box;
}

// Variante minimaliste
* {
  box-sizing: border-box;
}
La notion de pseudo éléments doit vous paraître encore abstraite. Elle le sera moins après quelques projets de pratique.

Bonnes pratiques

  • Commencez toujours votre CSS par box-sizing: border-box sur le sélecteur universel ; cela vous évitera des calculs de dimensions surprenants tout au long de votre projet
  • Utilisez des rem pour les espacements plutôt que des px : vos marges resteront proportionnelles si l’utilisateur change la taille de police de son navigateur
  • Préférez padding pour l’espace intérieur, margin pour l’espace extérieur . Ne les confondez pas, même si visuellement le résultat est parfois identique
  • Utilisez l’inspecteur (F12) pour visualiser le modèle de boîte : le panneau coloré est votre meilleur outil de diagnostic
  • Soyez cohérent dans vos espacements : définissez quelques valeurs de référence (par exemple 0.5rem, 1rem, 1.5rem, 2rem) et tenez-vous-y dans tout le projet
  • Évitez les marges négatives : elles peuvent créer des chevauchements imprévus et rendre votre mise en page difficile à maintenir
exercice

Mise en pratique

Objectifs : Maîtriser margin, padding, le centrage et box-sizing.

Dossier : JOUR 2 - CSS > 04-Marges

  • ex-marges01.html (page avec du contenu structuré)
  • style.css (fichier CSS avec box-sizing: border-box déjà déclaré)

Consignes :

  • Exercice css-padding : Ajoutez du padding aux paragraphes (1rem), aux titres (0.5rem 1rem) et au conteneur principal (2rem). Observez comment le fond coloré des éléments s’agrandit.

  • Exercice css-margin : Créer un conteneur-parent aux éléments présents dans le html. En css, donnez-lui une max-width: 800px et centrez-le avec margin: 0 auto.

Durée : 40 min

Ressources & références

  • Developper Mozilla | Le modèle de boîte CSSArticle
  • Developper Mozilla | marginArticle
  • Developper Mozilla | paddingArticle
  • Developper Mozilla | box-sizingArticle
  • CSS Tricks | The Box ModelArticle
  • An Interactive Guide to CSS Box ModelArticle
← Précédent La gestion du texte en CSS Suivant → Publier son site sur le Web
Retour à l'accueil de la formation Html5, les bases