Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про CSS: margin, collapsing

Как браузер рассчитывает итоговый margin между двумя блочными элементами?

Вопрос проверяет понимание механизма схлопывания отступов и того, как браузер вычисляет вертикальные расстояния между блоками.

Короткий ответ

Вертикальные margin у блочных элементов могут схлопываться.
Если два вертикальных margin соприкасаются, браузер не суммирует их, а берет максимальный.
Это поведение называется margin collapsing.
Горизонтальные margin не схлопываются.

Длинный ответ

При работе с вертикальными отступами важно понимать, что браузер не всегда складывает значения margin.

Определение

Margin collapsing — это поведение CSS, при котором вертикальные margin соседних блочных элементов объединяются в один.

Когда происходит схлопывание

Схлопывание margin происходит в следующих случаях:

  1. Между двумя соседними блочными элементами

  2. Между родителем и первым или последним дочерним элементом

  3. При пустых блочных элементах

Как вычисляется итоговый отступ

Если схлопываются два вертикальных margin:

  • Браузер берет большее значение

  • Если есть отрицательные margin, результат вычисляется сложнее

Пример:

.block-a { margin-bottom: 40px; }
.block-b { margin-top: 20px; }

Итоговый отступ будет 40px, а не 60px.

Когда margin не схлопывается

Схлопывание не происходит, если:

  • Используется padding или border

  • Элемент имеет overflow: hidden | auto | scroll

  • Используется flex или grid

Вывод

Схлопывание margin — это стандартное поведение CSS. Его нужно учитывать при верстке, чтобы избегать неожиданных отступов.

Уровень

  • Рейтинг:

    5

  • Сложность:

    6

Навыки

  • CSS

    CSS

Ключевые слова

#margin

#collapsing

Подпишись на React Developer в телеграм