Вопрос с собеседования · Frontend

Что такое блочная модель CSS и чем content-box отличается от border-box?

JuniorВёрстка и CSS
Ещё спрашивают так:
  • Почему ширина элемента больше заданной в width?
Коротко

Каждый элемент — прямоугольник из content, padding, border, margin. При content-box (по умолчанию) width задаёт только содержимое, а padding и border добавляются сверху. При border-box width включает padding и border — размеры предсказуемы, поэтому почти все проекты задают *, *::before, *::after { box-sizing: border-box }.

  • margin не входит в размер элемента ни в одном режиме
  • Вертикальные margin соседних блоков схлопываются (берётся больший)
  • Внутри flex и grid схлопывания margin нет

А ещё outline не занимает места и не влияет на раскладку

Подробно

.card { width: 300px; padding: 20px; border: 2px solid; }
/* content-box: реальная ширина 300 + 40 + 4 = 344px */
/* border-box:  реальная ширина 300px, содержимое 256px */

Схлопывание margin: у соседних блоков по вертикали между ними остаётся больший из двух отступов, а не сумма. То же происходит между родителем и первым ребёнком, если у родителя нет padding, border или он не создаёт новый контекст форматирования.

Строчные элементы (inline) игнорируют width, height и вертикальные margin; inline-block — ведёт себя как блок внутри строки.

Что хотят услышать

  • Четыре части модели.
  • Разница box-sizing.
  • Схлопывание margin.

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✗При content-box width уже включает padding и border; при border-box они добавляются к width
  • ✓При border-box width включает padding и border; при content-box они добавляются к width
  • ✗margin тоже входит в width при border-box
  • ✗box-sizing влияет только на высоту блока

Связанные вопросы

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования