Accueil
M1 | Les Fondamentaux techniques du web M2 | Les CMS avancés M3 | Les Produits UX UI M4 | Prototypage Avancé M5 | Intégration avancée & Projet Fil Rouge Bonus Formation
A propos Me Connecter Créer un compte
LMS Pro LMS Pro
  • Accueil
  • Formation Production Web & Interface
    • Module 1 — Fondamentaux techniques du web
    • Module 2 — CMS avancés
    • Module 3 — UX & UI Produit
    • Module 4 — Prototypage avancé
    • Module 5 — Intégration avancée & projet fil rouge
    • Module Bonus
  • A propos
  • Se connecter
  • S'enregistrer
Skip to content

wp-pro-test

LMS Pro — Votre plateforme pour apprendre, évoluer, réussir

Formations Professionnelle

Designer UX-UI

La mise en forme CSS

Posted on 23 janvier 202623 janvier 2026 By Frédéric Moitry Aucun commentaire sur La mise en forme CSS
Module 1 — Fondamentaux techniques du web

La mise en forme CSS

Découvrez les secrets de la mise en forme CSS et maîtrisez le modèle de boîte, élément fondamental pour créer des interfaces web harmonieuses et professionnelles. Cette formation vous permettra de comprendre et d’utiliser efficacement les propriétés margin, padding, border et box-sizing.

Module : Module 1 : Fondamentaux techniques du web

Niveau : Débutant

Durée : 20 minutes

Prérequis : Aucun

Objectifs pédagogiques

  • Expliquer le fonctionnement des feuilles de style en cascade et leur rôle dans la présentation web
  • Créer des styles inline et comprendre leur priorité dans la cascade CSS
  • Utiliser efficacement les sélecteurs CSS pour cibler les éléments HTML
  • Maîtriser les composants du modèle de boîte (margin, padding, border)
  • Résoudre les problèmes courants liés au modèle de boîte et à la fusion de marges

Le modèle de boîte CSS : une architecture fondamentale

Chaque élément HTML est représenté comme une boîte rectangulaire composée de quatre zones distinctes : le contenu (content), le remplissage intérieur (padding), la bordure (border) et la marge extérieure (margin). Cette représentation, appelée modèle de boîte CSS, est cruciale pour comprendre comment les éléments sont dimensionnés et positionnés sur une page web. Le contenu constitue le cœur de l’élément où s’affiche le texte ou les autres éléments enfants. Le padding crée un espace entre le contenu et la bordure, permettant d’aérer visuellement l’élément. La border forme le contour visible de l’élément, tandis que la margin établit l’espacement avec les éléments adjacents.

Visualisation et calcul des dimensions

La compréhension du modèle de boîte est essentielle pour maîtriser le dimensionnement des éléments. Par défaut, la largeur (width) et la hauteur (height) définies en CSS ne concernent que la zone de contenu. Les dimensions totales d’un élément incluent donc le contenu plus le padding, la border et éventuellement la margin. Cette particularité peut surprendre les débutants qui s’attendent à ce que width=200px produise un élément de 200 pixels de large au total. Les outils de développement des navigateurs offrent une visualisation graphique du modèle de boîte, particulièrement utile pour diagnostiquer les problèmes de mise en page.

Point clé : Chaque élément HTML suit le modèle de boîte : content + padding + border + margin, de l’intérieur vers l’extérieur.

À retenir

Le modèle de boîte CSS structure chaque élément en quatre zones concentriques : content, padding, border et margin, déterminant ainsi les dimensions et l’espacement des éléments.

? Mini-exercice : Visualiser le modèle de boîte

Créez une boîte avec du contenu, du padding, une bordure et des marges pour observer comment chaque propriété affecte l’apparence et les dimensions de l’élément.

Code de référence :


<div class="box-model-demo">
  <p>Contenu de la boîte</p>
</div>

<div class="reference">
  <p>Élément de référence</p>
</div>
.box-model-demo {
  width: 200px;
  height: 100px;
  padding: 20px;
  border: 5px solid #667eea;
  margin: 30px;
  background-color: #f0f4ff;
  text-align: center;
}

.reference {
  width: 200px;
  height: 100px;
  background-color: #ffe0e0;
  border: 1px dashed #ff6b6b;
  text-align: center;
}

body {
  font-family: Arial, sans-serif;
  padding: 20px;
}



Result
● Prêt
Monaco Editor v0.45

La propriété padding : l’espace intérieur

Le padding définit l’espace entre le contenu d’un élément et sa bordure. Cette propriété est particulièrement utile pour améliorer la lisibilité en évitant que le texte ou les éléments enfants touchent directement les bords de leur conteneur. Le padding peut être défini de plusieurs façons : avec une valeur unique (padding: 20px) qui s’applique aux quatre côtés, avec deux valeurs (padding: 20px 10px) pour vertical et horizontal, ou avec quatre valeurs distinctes (padding: 10px 20px 30px 40px) suivant l’ordre top, right, bottom, left. Il existe également les propriétés spécifiques padding-top, padding-right, padding-bottom et padding-left pour un contrôle précis de chaque côté.

La propriété margin : l’espace extérieur

La margin contrôle l’espace autour de l’élément, créant une zone transparente qui sépare l’élément de ses voisins. Contrairement au padding, la margin ne fait pas partie de l’arrière-plan de l’élément et reste toujours transparente. La syntaxe est identique à celle du padding, mais la margin présente des comportements particuliers comme la fusion de marges verticales entre éléments adjacents. Une spécificité importante est la possibilité d’utiliser des valeurs négatives pour créer des chevauchements ou des effets visuels particuliers. La valeur auto pour la margin permet notamment de centrer horizontalement un élément de largeur définie.

La propriété border : la frontière visible

La bordure forme la limite visible de l’élément et se situe entre le padding et la margin. Une bordure complète nécessite trois propriétés : la largeur (border-width), le style (border-style) et la couleur (border-color). La syntaxe courte border permet de définir ces trois valeurs en une seule déclaration (border: 2px solid #333). Les styles de bordure incluent solid, dashed, dotted, double, groove, ridge, inset et outset. Chaque côté peut avoir sa propre bordure avec border-top, border-right, border-bottom et border-left. La propriété border-radius permet d’arrondir les coins pour créer des effets visuels modernes.

Point clé : Padding = espace intérieur, Margin = espace extérieur, Border = limite visible entre les deux.

À retenir

Padding crée l’espace intérieur, margin l’espace extérieur, et border la frontière visible. Chaque propriété peut être définie globalement ou individuellement par côté.

? Mini-exercice : Créer des espacements variés

Experimentez avec différentes valeurs de margin, padding et border sur plusieurs éléments pour observer leurs effets visuels et leurs interactions.

Code de référence :


<div class="container">
  <div class="box box-1">Padding important</div>
  <div class="box box-2">Margin important</div>
  <div class="box box-3">Border stylée</div>
</div>
.container {
  background-color: #f8f9fa;
  padding: 20px;
}

.box {
  width: 150px;
  height: 80px;
  background-color: #e3f2fd;
  text-align: center;
  line-height: 80px;
  margin-bottom: 10px;
}

.box-1 {
  padding: 30px 15px;
  border: 2px solid #2196f3;
}

.box-2 {
  margin: 40px 20px;
  border: 1px solid #4caf50;
  background-color: #e8f5e8;
}

.box-3 {
  padding: 15px;
  border: 5px dotted #ff9800;
  border-radius: 10px;
  background-color: #fff3e0;
}



Result
● Prêt
Monaco Editor v0.45

Le problème du modèle de boîte traditionnel

Par défaut, CSS utilise le modèle de boîte « content-box », où les propriétés width et height ne s’appliquent qu’au contenu de l’élément. Cela signifie que les dimensions finales incluent le padding et la border en plus de la largeur définie, ce qui peut compliquer les calculs de mise en page. Par exemple, un élément avec width: 200px, padding: 20px et border: 5px aura une largeur totale de 250px (200 + 20*2 + 5*2). Cette logique, bien que techniquement cohérente, s’avère contre-intuitive pour de nombreux développeurs qui s’attendent à ce que width représente la largeur totale visible de l’élément. Ce comportement peut causer des débordements inattendus et compliquer la création de layouts précis.

La solution box-sizing: border-box

La propriété box-sizing: border-box change fondamentalement la façon dont les dimensions sont calculées. Avec cette valeur, width et height incluent le contenu, le padding et la border, mais excluent la margin. Cette approche est beaucoup plus intuitive car elle correspond à notre perception naturelle de la taille d’un élément. Un élément avec width: 200px et box-sizing: border-box aura toujours exactement 200px de large, peu importe les valeurs de padding et border. Le contenu s’ajustera automatiquement pour accommoder ces espaces intérieurs. Cette propriété est devenue si populaire que de nombreux frameworks CSS l’appliquent globalement avec le sélecteur universel.

Implémentation globale recommandée

La meilleure pratique consiste à appliquer box-sizing: border-box à tous les éléments dès le début d’un projet. La technique recommandée utilise le sélecteur universel et les pseudo-éléments : *, *::before, *::after { box-sizing: border-box; }. Cette approche garantit une cohérence dans tout le projet et simplifie grandement les calculs de mise en page. Certains développeurs préfèrent une approche plus conservative en définissant box-sizing: border-box sur l’élément html et en utilisant l’héritage, permettant ainsi des exceptions locales si nécessaire. Cette propriété n’affecte pas les marges, qui continuent de s’ajouter aux dimensions de l’élément.

Point clé : box-sizing: border-box fait que width inclut contenu + padding + border, rendant les calculs plus intuitifs.

À retenir

box-sizing: border-box change le calcul des dimensions pour inclure padding et border dans width/height, simplifiant grandement la mise en page.

? Mini-exercice : Comparer les modèles de boîte

Créez deux éléments identiques avec différentes valeurs de box-sizing pour observer comment cela affecte leurs dimensions finales.

Code de référence :


<div class="comparison">
  <div class="box content-box">
    <h3>content-box (défaut)</h3>
    <p>Width: 200px<br>Largeur totale: 250px</p>
  </div>
  
  <div class="box border-box">
    <h3>border-box</h3>
    <p>Width: 200px<br>Largeur totale: 200px</p>
  </div>
</div>
.comparison {
  display: flex;
  gap: 30px;
  flex-wrap: wrap;
  background-color: #f5f5f5;
  padding: 20px;
}

.box {
  width: 200px;
  padding: 20px;
  border: 5px solid #333;
  background-color: white;
  text-align: center;
  font-family: Arial, sans-serif;
}

.content-box {
  box-sizing: content-box;
  border-color: #e74c3c;
}

.border-box {
  box-sizing: border-box;
  border-color: #27ae60;
}

.box h3 {
  margin: 0 0 10px 0;
  color: #333;
  font-size: 16px;
}

.box p {
  margin: 0;
  font-size: 14px;
  color: #666;
}



Result
● Prêt
Monaco Editor v0.45

Comprendre la fusion de marges verticales

La fusion de marges (margin collapsing) est un comportement CSS spécifique aux marges verticales où deux marges adjacentes se combinent pour ne former qu’une seule marge. Ce phénomène se produit dans trois situations principales : entre éléments frères adjacents, entre un parent et son premier/dernier enfant, et sur les éléments vides. Par exemple, si un élément a margin-bottom: 30px et que l’élément suivant a margin-top: 20px, l’espace entre eux sera de 30px (la plus grande des deux) et non de 50px comme on pourrait s’y attendre. Cette logique, héritée de la mise en page de documents textuels, vise à éviter des espacements excessifs entre paragraphes et autres éléments de contenu.

Les cas particuliers et exceptions

La fusion de marges ne s’applique qu’aux marges verticales (top et bottom) des éléments en flux normal (display: block). Les marges horizontales ne fusionnent jamais, pas plus que les marges des éléments flottants, positionnés de manière absolue, ou ayant certaines propriétés display comme inline-block, flex, ou grid. Le cas parent-enfant est particulièrement troublant : la marge top du premier enfant fusionne avec la marge top du parent, pouvant créer des effets inattendus où l’espacement semble « remonter » au-dessus du conteneur parent. Cette fusion ne se produit pas si le parent a du padding, une bordure, ou certaines propriétés comme overflow différent de visible.

Techniques pour éviter la fusion

Plusieurs stratégies permettent de contrôler ou éviter la fusion de marges selon le contexte. L’ajout d’un padding minimal au parent (padding: 1px 0) empêche la fusion avec les enfants. L’utilisation d’overflow: hidden sur le parent crée un nouveau contexte de formatage et bloque la fusion. Les techniques de layout modernes comme Flexbox et CSS Grid éliminent naturellement ce problème. Pour des espacements précis, on peut privilégier le padding ou combiner margin avec border transparente. Dans certains cas, l’utilisation de display: inline-block ou l’ajout d’un pseudo-élément avec contenu peut résoudre les problèmes de fusion tout en préservant la mise en page désirée.

Point clé : Les marges verticales adjacentes fusionnent automatiquement, gardant seulement la plus grande valeur.

À retenir

La fusion de marges concerne uniquement les marges verticales adjacentes qui se combinent en une seule marge égale à la plus grande des deux valeurs.

? Mini-exercice : Observer la fusion de marges

Créez des éléments avec différentes marges verticales pour constater le phénomène de fusion et testez des solutions pour l’éviter.

Code de référence :


<div class="demo-section">
  <h3>Fusion de marges (défaut)</h3>
  <div class="element margin-30">Margin-bottom: 30px</div>
  <div class="element margin-20">Margin-top: 20px</div>
</div>

<div class="demo-section no-collapse">
  <h3>Pas de fusion (padding parent)</h3>
  <div class="element margin-30">Margin-bottom: 30px</div>
  <div class="element margin-20">Margin-top: 20px</div>
</div>
.demo-section {
  margin-bottom: 40px;
  background-color: #f8f9fa;
  border: 2px dashed #dee2e6;
}

.demo-section h3 {
  margin: 0;
  padding: 10px;
  background-color: #343a40;
  color: white;
  font-size: 14px;
}

.no-collapse {
  padding: 1px 0; /* Empêche la fusion */
}

.element {
  padding: 15px;
  background-color: #e9ecef;
  border: 1px solid #adb5bd;
  text-align: center;
  font-family: Arial, sans-serif;
  font-size: 14px;
}

.margin-30 {
  margin-bottom: 30px;
  background-color: #ffebee;
  border-color: #f44336;
}

.margin-20 {
  margin-top: 20px;
  background-color: #e8f5e8;
  border-color: #4caf50;
}



Result
● Prêt
Monaco Editor v0.45

Les sélecteurs CSS fondamentaux

Les sélecteurs CSS permettent de cibler précisément les éléments HTML à styliser. Le sélecteur d’élément (p, div, h1) cible tous les éléments du type spécifié. Le sélecteur de classe (.ma-classe) cible les éléments ayant l’attribut class correspondant, tandis que le sélecteur d’ID (#mon-id) cible un élément unique avec l’attribut id spécifié. Les sélecteurs peuvent être combinés : p.intro cible les paragraphes avec la classe « intro », div#header cible un div spécifique avec l’ID « header ». Les sélecteurs descendants (div p) permettent de cibler des éléments imbriqués, tandis que les sélecteurs d’enfants directs (div > p) ne ciblent que les enfants immédiats. Cette flexibilité permet un contrôle très précis de la mise en forme.

Les styles inline et leur priorité

Les styles inline sont définis directement dans l’attribut style de l’élément HTML (<div style= »color: red; »>). Cette méthode a l’avantage de la simplicité et de l’immédiateté, particulièrement utile pour des tests rapides ou des styles très spécifiques. Cependant, les styles inline ont une spécificité très élevée dans la cascade CSS, ce qui signifie qu’ils surpassent pratiquement tous les autres styles définis dans des feuilles de style externes ou internes. Cette priorité élevée peut rendre difficile la maintenance et les modifications ultérieures, car il devient compliqué de surcharger ces styles sans utiliser !important ou d’autres styles inline.

La cascade CSS et les bonnes pratiques

La cascade CSS détermine quels styles s’appliquent lorsque plusieurs règles ciblent le même élément. L’ordre de priorité suit cette logique : styles inline (spécificité la plus élevée), IDs, classes et attributs, puis éléments. À spécificité égale, la dernière règle déclarée l’emporte. Les bonnes pratiques recommandent d’éviter les styles inline en faveur de classes CSS réutilisables, d’organiser les feuilles de style de manière logique, et de privilégier la spécificité naturelle plutôt que !important. Une architecture CSS bien pensée utilise une nomenclature cohérente (comme BEM) et sépare clairement la structure (HTML) de la présentation (CSS), facilitant ainsi la maintenance et l’évolution du projet.

Point clé : Les sélecteurs CSS permettent un ciblage précis, mais les styles inline ont une priorité très élevée dans la cascade.

À retenir

Les sélecteurs CSS offrent une flexibilité de ciblage, mais les styles inline, bien que pratiques, ont une spécificité élevée qui peut compliquer la maintenance.

? Mini-exercice : Tester les sélecteurs et la spécificité

Créez des éléments avec différents sélecteurs et styles inline pour observer comment la cascade CSS détermine les styles appliqués.

Code de référence :


<div class="container">
  <h2>Test de spécificité CSS</h2>
  
  <p class="text-style">Paragraphe avec classe (vert)</p>
  
  <p class="text-style" id="special-text">Paragraphe avec classe + ID (bleu)</p>
  
  <p class="text-style" style="color: red;">Paragraphe avec style inline (rouge)</p>
  
  <div class="box-demo">
    <p>Paragraphe dans une div (orange par héritage)</p>
  </div>
</div>
/* Sélecteur d'élément - spécificité faible */
p {
  color: gray;
  font-size: 16px;
  margin-bottom: 10px;
}

/* Sélecteur de classe - spécificité moyenne */
.text-style {
  color: green;
  font-weight: bold;
}

/* Sélecteur d'ID - spécificité élevée */
#special-text {
  color: blue;
  text-decoration: underline;
}

/* Sélecteur descendant */
.box-demo {
  color: orange;
  background-color: #fff3e0;
  padding: 15px;
  border-radius: 5px;
  border: 2px solid #ff9800;
}

.container {
  font-family: Arial, sans-serif;
  max-width: 600px;
  padding: 20px;
}

.container h2 {
  color: #333;
  border-bottom: 2px solid #667eea;
  padding-bottom: 5px;
}



Result
● Prêt
Monaco Editor v0.45

Récapitulatif

Points essentiels à retenir

  • Modèle de boîte : Chaque élément suit la structure content + padding + border + margin
  • Propriétés d’espacement : Padding (intérieur), margin (extérieur) et border (frontière visible) contrôlent la disposition
  • Box-sizing border-box : Inclut padding et border dans les dimensions width/height pour des calculs intuitifs
  • Fusion de marges : Les marges verticales adjacentes se combinent automatiquement en gardant la plus grande valeur
  • Cascade CSS : Les styles inline ont la priorité la plus élevée, suivis des IDs, classes, puis éléments

Sources

Pour approfondir vos connaissances :


  • ?
    MDN – Le modèle de boîte CSS
    →

  • ?
    CSS-Tricks – Box Sizing
    →

Validez vos connaissances

Testez votre compréhension avec ce quiz de 10 questions :

Chargement du quiz...
Catégories : Accessibilité Animation CSS Fondamentaux Web HTML JavaScript JS UX

Navigation de l’article

❮ Previous Post: La mise en forme CSS
Next Post: Créer ses outils de Designer UX/UI grâce à l’IA ❯

À voir également

Module 1 — Fondamentaux techniques du web
La mise en forme CSS
23 janvier 2026
Comprendre le Web moderne
Module 1 — Fondamentaux techniques du web
Comprendre le Web moderne [Grade A – Théorie]
18 janvier 2026

LMS Pro LMS Pro est une plateforme pédagogique dédiée au monde de la Formation Professionnelle. LMS Pro 2026 Tous droits réservés

Vous devez vous connecter

Mot de passe oublié ?
Pas encore de compte, cliquez ici
LMS Pro

Créer un compte

Remplissez ces informations

Déjà un compte ? Se connecter
LMS Pro