Box Model: как браузер «думает» о блоках
Разбираемся, как устроена блочная модель в CSS — content, padding, border, margin. Почему всё «едет» без box-sizing, как считать размеры элементов и где это спасёт тебе макет.
🤔 Что вообще такое Box Model?
Box Model (блочная модель) — это способ, которым браузер представляет и рассчитывает каждый элемент на странице. Любой HTML-элемент, будь то <div>
, <p>
, <button>
, браузер воспринимает как прямоугольную коробку.
И вот у этой коробки есть структура:
Content — содержимое (текст, картинка и т.д.)
Padding — внутренний отступ от контента до рамки
Border — рамка вокруг элемента
Margin — внешний отступ до соседних элементов

🔍 Почему это важно?
Ты можешь отлично знать HTML и CSS, но если не понимаешь, как рассчитываются размеры блока, то будешь постоянно задаваться вопросами вроде:
«Почему блок выходит за границы родителя?»
«Почему margin не работает как я ожидал?»
«Почему два блока слились в один?»
И почти всегда ответ — в box model.
📏 Формула расчёта размеров
Пример:
width: 200px;
padding: 10px;
border: 2px solid black;
margin: 20px;
Если используется box-sizing: content-box
:
Итоговая ширина = 200 + 10 + 10 + 2 + 2 = 224px
Если используется box-sizing: border-box
:
Ширина включает в себя padding и border → content = 176px
🧠 Как браузер рисует блок?
Парсит HTML
Применяет CSS
Создаёт дерево рендеринга
Считает размеры всех элементов через Box Model
Рисует всё на экран

🚫 Частые ошибки и мифы
🔹 Margin collapse
Вертикальные отступы соседних блоков не складываются, а сливаются — остаётся больший.
🔹 Элементы выходят за пределы контейнера
Если задан width: 100%
и добавлен padding
, блок может вылезти. Решение: box-sizing: border-box
.
🔹 Border влияет на размеры
Даже 1px рамка меняет размер. Используй box-sizing
или outline
для hover.
🎨 Как это увидеть в браузере?
Открой DevTools (F12)
Выдели элемент
Во вкладке Computed — визуализация Box Model
🧪 Советы из практики
Добавь глобально:
* { box-sizing: border-box; }
Следи за margin в grid/flex контейнерах
Вместо
border
для фокуса можно использоватьoutline
💻 Почему это важно именно тебе, разработчику?
Box Model — это контроль над версткой. Ты не просто задаёшь ширину и высоту, ты управляешь поведением интерфейса. Pixel-perfect начинается с box model.
📱 Хочешь разобраться во фронтенде глубже?
Скачай Кодик — приложение с пошаговыми курсами по фронтенду, где всё объясняется на русском и простыми словами. Учи, практикуй, вёрстай уверенно.
🎯 Вывод
Box Model — это фундамент. Освоишь — и верстка станет стабильной. Не освоишь — и будешь воевать с отступами всю жизнь.
👇 А ты используешь box-sizing: border-box
по умолчанию? Напиши в комментарии, как впервые столкнулся с box model — и как многое стало на свои места!