box-sizing
Властивість в CSS управляє тим, як модель коробки обробляється для елемента вона застосовується.
.module ( box-sizing: border-box; )
Одним з найпоширеніших способів його використання є застосування до всіх елементів на сторінці, включаючи псевдоелементи:
*, *::before, *::after ( box-sizing: border-box; )
Це часто називають "універсальним розміром коробки", і це хороший спосіб працювати! (Буквальний), який width
ви встановлюєте, - це ширина, яку ви отримуєте, без необхідності виконувати розумову математику та керувати складністю, яка походить від ширини, що походить від декількох властивостей. У нас навіть тут є день обізнаності щодо розміру коробки.
Цінності
content-box
: за замовчуванням. Значення ширини та висоти стосуються лише вмісту елемента. Набивка та рамка додаються на зовнішню сторону коробки.padding-box
: Значення ширини та висоти застосовуються до вмісту елемента та його заповнення. Облямівка додається із зовнішньої сторони коробки. На даний моментpadding-box
значення підтримує лише Firefox .border-box
: Значення ширини та висоти застосовуються до вмісту, відступів та меж.inherit
: успадковує розмір поля батьківського елемента.
Приклад
Цей приклад зображення порівнює типовий content-box
(верхній) та border-box
(нижній):
Червона лінія між зображеннями відображає значення ширини елементів. Зверніть увагу, що елемент із типовим значенням box-sizing: content-box;
перевищує заявлену ширину, коли відступ та рамка додаються до зовнішньої сторони вікна вмісту, тоді як елемент із box-sizing: border-box;
застосованим вміщується повністю в межах оголошеної ширини.
Використання розміру коробки
Скажімо, ви встановили для елемента значення width: 100px; padding: 20px; border: 5px solid black;
. За замовчуванням отримане вікно має ширину 150 пікселів. Це тому, що за замовчуванням використовується модель розміру вікна content-box
, яка застосовує оголошену ширину елемента лише до його вмісту, розміщуючи відступ і рамку поза рамкою елемента. Це ефективно збільшує, скільки місця займає елемент.
Якщо ви зміните значення box-sizing
на padding-box
, відступ просувається всередину вікна елемента. Тоді коробка мала б ширину 110 пікселів, з 20 пікселів прокладки всередині та 10 пікселів межі зовні. Якщо ви хочете помістити відступ і межу всередину коробки, ви можете використовувати border-box
. Тоді коробка повинна бути шириною 100 пікселів - 10 пікселів межі та 20 пікселів заповнення вставляються всередину коробки елемента.
Демо
Див. Порівняння значень розміру коробки за допомогою CSS-Tricks (@ css-tricks) на CodePen.
Пов’язані
width
height
padding
border
Підтримка браузера
Chrome | Сафарі | Firefox | Опера | IE | Android | iOS |
---|---|---|---|---|---|---|
Будь-який * † | 3 * † | 1 ‡ | 7 * | 8 * | 2,1 * † | Будь-який * |
* padding-box
не підтримується
† для старих версій потрібен -webkit
префікс (Chrome 1-9, Safari 3-5, Android 2.1-3.x)
‡ -moz
потрібен префікс до версії 28, без префіксу станом на 29.