Box Model: базовый принцип вёрстки, который нужно знать - блог программиста

Ян Боровский

Веб-разработчик

Создание сайтов

Box Model: базовый принцип вёрстки, который нужно знать

Box Model CSS - фото на фон статьи

Box model — одна из базовых концепций в CSS, без которой невозможна современная вёрстка. Каждый элемент на веб-странице для браузера — это прямоугольная коробка, и понимание того, как эта коробка устроена, позволяет точно управлять размерами, отступами и позиционированием. Рассмотрим, откуда появилась box model, как она работает и как её применять на практике.

Откуда всё началось: немного истории

Box model была частью спецификации CSS1, принятой W3C в 1996 году. Тогда же были заданы её ключевые принципы: каждый HTML-элемент должен восприниматься как прямоугольная модель со слоями — content, padding, border и margin.

Но на практике в 90-х всё было сложнее. Основные браузеры того времени — Internet Explorer и Netscape Navigator — по-разному трактовали спецификацию. Netscape использовал «правильную» модель: width — это только контент, а padding и border прибавлялись сверху. А IE включал padding и border внутрь width, что полностью меняло расчёт размеров.

Это привело к хаосу: одна и та же вёрстка выглядела по-разному в двух браузерах. Разработчики были вынуждены использовать хаки, условные комментарии и писать код «под конкретный движок». Только в 2000-х удалось стабилизировать поведение браузеров, а позже был введён параметр box-sizing, позволивший явно задать нужную модель.

Как устроена box model

Модель коробки включает четыре слоя:

  1. Content — содержимое блока: текст, изображение или любой другой контент. Размер задаётся через width и height.
  2. Padding — внутренние отступы. Расстояние от контента до границ блока.
  3. Border — рамка вокруг элемента. Может быть невидимой, но участвует в расчёте.
  4. Margin — внешний отступ. Отделяет элемент от других блоков.

Важно: если используется стандартное поведение (box-sizing: content-box), то width — это только content, и итоговый размер блока увеличивается за счёт padding и border.

Пример расчёта:

width: 200px;
padding: 20px;
border: 5px;

Фактическая ширина блока будет: 200 + 2×20 + 2×5 = 250px.

box-sizing — точка контроля

Чтобы упростить расчёты и избежать увеличения габаритов из-за padding и border, используется свойство box-sizing. Оно может принимать два значения:

Сегодня большинство проектов, UI-фреймворков и шаблонов подключают глобальное правило:

*,
*::before,
*::after {
box-sizing: border-box;
}

Это делает расчёт размеров предсказуемым и избавляет от необходимости вручную вычитать padding из ширины.

Применение на практике

Box model — основа всех отступов, позиционирования и визуальных расстояний между элементами. Вот несколько примеров, где она критически важна:

Также box model напрямую влияет на метрики производительности, такие как Cumulative Layout Shift (CLS): неконтролируемые margin или изменение padding во время загрузки — частая причина сдвигов интерфейса.

Заключение

Box model — не просто термин из CSS, а реальный инструмент управления внешним видом и поведением элементов на странице. Понимание её устройства и умелое применение — обязательный навык любого фронтенд-разработчика.

Используйте box-sizing: border-box как дефолт, контролируйте отступы и помните: браузер видит не «дизайн», а прямоугольники. И только от вас зависит, насколько аккуратно они будут размещены.

P.S.: Текст оформлен при помощи нейросети. Авторский опыт, выводы и позиция — личные.