Spec-Zone.ru › CSS

box-sizing

Базовая линия Широко доступна

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Свойство box-sizing CSS определяет, как рассчитываются общая ширина и высота элемента.

Попробуйте

По умолчанию в модели CSS-боксов значения width и height , присваиваемые элементу, применяются только к области содержимого элемента. Если у элемента есть граница или отступ, они добавляются к width и height, чтобы определить размер отображаемого на экране бокса. Это означает, что при установке width и height, необходимо корректировать заданное значение с учетом возможной границы или отступа. Например, если у вас есть четыре блока с width: 25%;, если у какого-либо есть левый или правый отступ или граница, они по умолчанию не поместятся в одну строку в рамках ограничений родительского контейнера.

Свойство box-sizing можно использовать для корректировки этого поведения:

  • content-box задает поведение по умолчанию CSS box-sizing. Если вы задаете ширину элемента в 100 пикселей, тогда область содержимого элемента будет шириной 100 пикселей, а ширина любой границы или отступа будет добавлена к окончательной ширине отображения, делая элемент шире, чем 100 пикселей.

  • border-box сообщает браузеру учитывать границу и отступы в значениях, которые вы задаете для ширины и высоты элемента. Если вы задаете ширину элемента в 100 пикселей, эти 100 пикселей будут включать любую границу или отступ, который вы добавили, а область содержимого уменьшится, чтобы поглотить эту дополнительную ширину. Это обычно значительно упрощает настройку размеров элементов.

    box-sizing: border-box является стилем по умолчанию, который браузеры используют для элементов <table>, <select> и <button>, а также для элементов <input> с типом radio, checkbox, reset, button, submit, color, или search.

Примечание: Часто полезно задать box-sizing значение border-box для размещения элементов. Это значительно упрощает работу с размерами элементов и, как правило, устраняет ряд проблем, которые могут возникнуть при размещении контента. С другой стороны, при использовании position: relative или position: absolute, использование box-sizing: content-box позволяет значениям позиционирования быть относительными к содержимому и независимыми от изменений размеров границы и отступов, что иногда желательно.

Синтаксис

box-sizing: border-box;
box-sizing: content-box;

/* Global values */
box-sizing: inherit;
box-sizing: initial;
box-sizing: revert;
box-sizing: revert-layer;
box-sizing: unset;

Свойство box-sizing задается одним ключевым словом из следующего списка.

Значения

content-box

Это начальное и значение по умолчанию, как указано в стандарте CSS. Свойства width и height включают содержимое, но не включают отступ, границу или отступ. Например, .box {width: 350px; border: 10px solid black;} отображает блок шириной 370 пикселей.

Здесь размеры элемента рассчитываются следующим образом: ширина = ширина содержимого, и высота = высота содержимого. (Границы и отступы в расчёт не берутся.)

border-box

Свойства width и height включают содержимое, отступ и границу, но не включают отступ. Обратите внимание, что отступ и граница будут внутри блока. Например, .box {width: 350px; border: 10px solid black;} отображает блок шириной 350 пикселей, при этом область содержимого имеет ширину 330 пикселей. Область содержимого не может быть отрицательной и ограничена значением 0, что делает невозможным использование border-box для скрытия элемента.

Здесь размеры элемента рассчитываются как: ширина = граница + отступ + ширина содержимого, и высота = граница + отступ + высота содержимого.

Формальное определение

Начальное значение content-box
Применяется к все элементы, которые принимают ширину или высоту
Унаследован нет
Вычисленное значение как указано
Тип анимации дискретный

Формальный синтаксис

box-sizing = 
content-box |
border-box

Примеры

Размеры блоков с content-box и border-box

Этот пример демонстрирует, как разные значения box-sizing изменяют визуальные размеры двух иначе идентичных элементов.

HTML

<div class="content-box">Content box</div>
<br />
<div class="border-box">Border box</div>

CSS

div {
  width: 160px;
  height: 80px;
  padding: 20px;
  border: 8px solid red;
  background: yellow;
}

.content-box {
  box-sizing: content-box;
  /* Total width: 160px + (2 * 20px) + (2 * 8px) = 216px
     Total height: 80px + (2 * 20px) + (2 * 8px) = 136px
     Content box width: 160px
     Content box height: 80px */
}

.border-box {
  box-sizing: border-box;
  /* Total width: 160px
     Total height: 80px
     Content box width: 160px - (2 * 20px) - (2 * 8px) = 104px
     Content box height: 80px - (2 * 20px) - (2 * 8px) = 24px */
}

Результат

Спецификации

Спецификация
CSS Box Sizing Module Level 3
# box-sizing

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
box-sizing
10box-sizing не соблюдается, когда высота вычисляется из window.getComputedStyle().
1
1212 2949
1До Firefox 23, box-sizing не соблюдается, когда высота вычисляется из window.getComputedStyle().
7 5.13
18box-sizing не соблюдается, когда высота вычисляется из window.getComputedStyle().
18
2949
4До Firefox 23, box-sizing не соблюдается, когда высота вычисляется из window.getComputedStyle().
14box-sizing не соблюдается, когда высота вычисляется из window.getComputedStyle().
14
61
1.0box-sizing не соблюдается, когда высота вычисляется из window.getComputedStyle().
1.0
4box-sizing не соблюдается, когда высота вычисляется из window.getComputedStyle().
2
border-box 1 12 1 15 3 18 4 14 2 1.0 4.4
content-box 1 12 1 15 3 18 4 14 2 1.0 4.4
END_OF_DOCUMENT_MARKER

См. также

  • Модель блоков CSS

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/box-sizing

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API