Весь HTML — это коробки.
Не «контейнеры», не «блочные элементы», а именно коробки.
CSS описывает, как эти коробки устроены физически на странице — в трёхмерном смысле: высота, ширина, толщина стенок, внутреннее пространство. Эту договорённость называют блочной моделью (CSS box model).
Она стандартизирована в спецификации CSS и действует одинаково во всех современных браузерах. 📌 Представьте посылку.
— Внутри — ваш товар (content).
— Вокруг — воздушно-пузырьковая плёнка (padding).
— Поверх — картонная коробка (border).
— И снаружи — свободное место до соседней посылки (margin).Это и есть box model.
Только в CSS margin не входит в размеры коробки — он как проход между стеллажами на складе. Вот здесь начинается боль 90% фронтендеров. Свойство width не всегда задаёт ширину контента.
Оно задаёт ширину целевой геометрической зоны, и что именно означает эта зона — зависит от box-sizing. Есть два режима: a) box-sizing: content-box (по умолчанию) width = ширина content → padding и border добав