Що таке злиття відступів у CSS
Злиття відступів — це функція CSS, де вертикальні відступи сусідніх блоків зливаються (тобто, вони не підсумовуються, а береться більший).
Ця функція працює лише з вертикальними відступами (margin-top, margin-bottom) і може викликати неочікувані візуальні ефекти.
Приклад злиття відступів
<div class="block1">...</div>
<div class="block2">...</div>.block1 {
margin-bottom: 30px;
}
.block2 {
margin-top: 50px;
}Що буде відображено між блоками?
50px, а не 80px. Тому що відступи злилися (був взятий більший).
Коли відбувається злиття?
-
Сусідні вертикально розташовані блоки
-
Коли
margin-bottomодного елемента межує зmargin-topіншого. -
Працює лише вертикально.
-
Батьківський елемент і перший/останній нащадок
-
Якщо в батьківського елемента немає
padding,border,inline contentтощо. -
Відступ першого/останнього нащадка зливається з
marginбатьківського елемента. -
Порожні блоки
-
Якщо блок порожній, верхні і нижні відступи зливаються в один.
Як запобігти злиттю?
- Додати
paddingабоborderдо батьківського елемента - Використовувати
overflow: hiddenабоoverflow: auto - Використовувати Flexbox або Grid (вони не зливають відступи)
- Додати
display: flow-rootдо батьківського елемента
Важливо:
Злиття відступів працює лише вертикально і лише для блочних елементів у нормальному потоці.
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.