Middle
Čo je zhlukovanie okrajov v CSS?
sobes.tech AI
Odpoveď od AI
Skládanie okrajov (margin collapsing) je jav v CSS, kde sa zvislé okraje dvoch alebo viacerých susedných blokov spoja do jedného okraja. Veľkosť tohto spoločného okraja je určená najväčšou hodnotou zo skladajúcich sa okrajov.
Hlavné pravidlá skládania:
- Skladajú sa iba zvislé okraje (
margin-topamargin-bottom). Horizontálne okraje sa neskladajú. - Skladajú sa iba okraje susedných prvkov, ak medzi nimi nie sú iné prvky, padding, border alebo obsah bloku.
- Horný okraj prvého dieťaťa sa spojí s horným okrajom jeho rodiča, ak medzi nimi nie je
padding,borderalebo iný obsah. - Dolný okraj posledného dieťaťa sa spojí s dolným okrajom jeho rodiča, ak medzi nimi nie je
padding,borderalebo iný obsah. - Horné a dolné okraje prázdneho prvku sa môžu spojiť, ak nemá
padding,borderalebo obsah. - Ak je jedna zo skladajúcich sa okrajov záporná, konečná veľkosť je súčtom pozitívnych a negatívnych hodnôt (alebo absolútna hodnota, ak obe sú záporné a súčet je menší ako nula).
Príklad:
<div class="box1">Prvok 1</div>
<div class="box2">Prvok 2</div>
.box1 {
margin-bottom: 20px;
}
.box2 {
margin-top: 30px;
}
V tomto prípade bude vertikálna vzdialenosť medzi box1 a box2 30px (najväčšia z hodnôt 20px a 30px), nie 50px.
Spôsoby, ako zabrániť skládaniu:
- Pridať
paddingalebobordermedzi prvkami. - Vytvoriť nový formátovací blok (napríklad pomocou
overflow: hidden,display: flow-rootalebo plávajúcich prvkov). - Použiť
display: inline-block,display: flexalebodisplay: gridpre prvky. - Použiť absolútne pozicovanie.