Middle
Wat is het samenvoegen van randen in CSS?
sobes.tech AI
Antwoord van AI
Het margin collapsing (marge samenvallen) is een fenomeen in CSS waarbij de verticale marges van twee of meer aangrenzende blokken samenvallen tot één marge. De grootte van deze gemeenschappelijke marge wordt bepaald door de grootste waarde van de samenvallende marges.
Belangrijke regels voor samenvallen:
- Alleen verticale marges (
margin-topenmargin-bottom) vallen samen. Horizontale marges niet. - Alleen de marges van aangrenzende elementen vallen samen als er geen andere elementen, padding, border of inhoud tussen hen is.
- De bovenmarge van het eerste kind valt samen met de bovenmarge van de ouder als er geen
padding,borderof andere inhoud tussen hen is. - De ondermarge van het laatste kind valt samen met de ondermarge van de ouder als er geen
padding,borderof andere inhoud tussen hen is. - De boven- en ondermarges van een leeg element kunnen samenvallen als het geen
padding,borderof inhoud heeft. - Als een van de samenvallende marges negatief is, wordt de uiteindelijke grootte bepaald door de som van de positieve en negatieve waarden (of de absolute waarde als beide negatief zijn en de som kleiner is dan nul).
Voorbeeld:
<div class="box1">Element 1</div>
<div class="box2">Element 2</div>
.box1 {
margin-bottom: 20px;
}
.box2 {
margin-top: 30px;
}
In dit geval is de verticale afstand tussen box1 en box2 30px (de grootste waarde tussen 20px en 30px), niet 50px.
Manieren om samenvallen te voorkomen:
- Voeg
paddingofbordertoe tussen de elementen. - Maak een nieuw opmaakblok (bijvoorbeeld met
overflow: hidden,display: flow-rootof zwevende elementen). - Gebruik
display: inline-block,display: flexofdisplay: gridvoor de elementen. - Gebruik absolute positionering.