Вопрос проверяет понимание механизма схлопывания отступов и того, как браузер вычисляет вертикальные расстояния между блоками.
Вертикальные margin у блочных элементов могут схлопываться.
Если два вертикальных margin соприкасаются, браузер не суммирует их, а берет максимальный.
Это поведение называется margin collapsing.
Горизонтальные margin не схлопываются.
При работе с вертикальными отступами важно понимать, что браузер не всегда складывает значения margin.
Margin collapsing — это поведение CSS, при котором вертикальные margin соседних блочных элементов объединяются в один.
Схлопывание margin происходит в следующих случаях:
Между двумя соседними блочными элементами
Между родителем и первым или последним дочерним элементом
При пустых блочных элементах
Если схлопываются два вертикальных margin:
Браузер берет большее значение
Если есть отрицательные margin, результат вычисляется сложнее
Пример:
.block-a { margin-bottom: 40px; }
.block-b { margin-top: 20px; }
Итоговый отступ будет 40px, а не 60px.
Схлопывание не происходит, если:
Используется padding или border
Элемент имеет overflow: hidden | auto | scroll
Используется flex или grid
Схлопывание margin — это стандартное поведение CSS. Его нужно учитывать при верстке, чтобы избегать неожиданных отступов.