Почему верхние и нижние внешние отступы пустого блока не схлопываются?

В HTML верхние и нижние внешние отступы пустых блоков не схлопываются из-за спецификации CSS (каскадных таблиц стилей).

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

Однако, если у блока нет содержимого (пустой блок), то он не учитывается при определении величины внешних отступов. В CSS специально предусмотрено, что верхние и нижние внешние отступы пустых блоков не схлопываются, даже если они расположены друг над другом.

Таким образом, для управления межблочным расстоянием между пустыми блоками рекомендуется использовать другие CSS свойства, такие как padding (внутренние отступы) или margin (внешние отступы) с явным заданием величины отступа.