Qu'est-ce que le collapse des bordures en CSS?
sobes.tech IA
Réponse de l'IA
Le chevauchement des marges (margin collapsing) est un phénomène en CSS où les marges verticales de blocs adjacents se fusionnent en une seule. La taille de cette marge fusionnée est déterminée comme la valeur maximale des marges qui se chevauchent.
Le chevauchement se produit dans les cas suivants :
-
Entre éléments adjacents : Les marges verticales de deux éléments voisins se chevauchent.
<p>Paragraphe 1</p> <p>Paragraphe 2</p>Si
<p>amargin-bottometmargin-toprespectivement, ces marges peuvent se chevaucher. -
Entre un parent et son premier/dernier enfant : Si le parent n'a pas de
border,padding,display: flex,display: grid,overflow: hiddenou d'autres propriétés créant un contexte de formatage, sa marge supérieure peut se chevaucher avec lemargin-topdu premier enfant. De même, la marge inférieure du parent peut se chevaucher avec lemargin-bottomdu dernier enfant.<div class="parent"> <p class="child">Élément enfant</p> </div> -
Sur un élément vide : Si un élément n'a pas de contenu (
height: 0, sansbordernipadding), ses marges supérieure et inférieure peuvent se chevaucher.<div class="empty"></div>
Tableau illustrant les résultats du chevauchement :
| Marge 1 | Marge 2 | Résultat du chevauchement |
|---|---|---|
| 10px | 15px | 15px |
| 20px | -5px | 20px |
| -10px | -15px | -10px |
Le chevauchement des marges ne se produit que dans la direction verticale (margin-top et margin-bottom). Les marges horizontales (margin-left et margin-right) ne se chevauchent jamais.
Il existe des moyens d'empêcher le chevauchement, comme ajouter une border, un padding, utiliser display: flex, display: grid, overflow: hidden ou créer un nouveau contexte de formatage du bloc avec display: flow-root.