Wat is het samenvoegen van randen in CSS?
sobes.tech AI
Antwoord van AI
Het samenvallen van marges (margin collapsing) is een fenomeen in CSS waarbij verticale marges van aangrenzende blokken samensmelten tot één. De grootte van deze samengevoegde marge wordt bepaald als de maximale waarde van de samenvallende marges.
Het samenvallen gebeurt in de volgende gevallen:
-
Tussen aangrenzende elementen: De verticale marges van twee naast elkaar liggende elementen samenvallen.
<p>Paragraaf 1</p> <p>Paragraaf 2</p>Als
<p>respectievelijkmargin-bottomenmargin-topheeft, kunnen deze marges samenvallen. -
Tussen een ouder en zijn eerste/laatste kind: Als de ouder geen
border,padding,display: flex,display: grid,overflow: hiddenof andere eigenschappen heeft die een formatteringscontext creëren, kan de bovenmarge van de ouder samenvallen met demargin-topvan het eerste kind. Evenzo kan de ondermarge van de ouder samenvallen met demargin-bottomvan het laatste kind.<div class="parent"> <p class="child">Kind-element</p> </div> -
Bij een leeg element: Als een element geen inhoud heeft (
height: 0, geenborderen geenpadding), kunnen de boven- en ondermarges van dat element met elkaar samenvallen.<div class="empty"></div>
Tabel die de resultaten van het samenvallen illustreert:
| Margin 1 | Margin 2 | Resultaat van het samenvallen |
|---|---|---|
| 10px | 15px | 15px |
| 20px | -5px | 20px |
| -10px | -15px | -10px |
Het samenvallen van marges gebeurt alleen in verticale richting (margin-top en margin-bottom). Horizontale marges (margin-left en margin-right) samenvallen nooit.
Er zijn manieren om het samenvallen te voorkomen, zoals het toevoegen van border, padding, het gebruiken van display: flex, display: grid, overflow: hidden of het creëren van een nieuwe formatteringscontext met display: flow-root.