JS властивість CSSStyleDeclaration.boxSizing


Загальний опис

element.style.boxSizing - це властивість, яка визначає, як враховуються відступи (padding) та рамки (border) при обчисленні загальної ширини і висоти елемента. Вона може приймати значення content-box, яке є значенням за замовчуванням, або border-box.

За замовчуванням, якщо властивість встановлена на content-box, ширина та висота елемента враховують лише контент, а відступи і рамки додаються до цієї ширини і висоти. Наприклад, якщо ми встановимо ширину елемента на 300 пікселів і додамо 20 пікселів відступу з кожного боку, тоді загальна ширина елемента буде 340 пікселів.

Приклад:

let element = document.getElementById('myElement');
element.style.boxSizing = 'content-box';
element.style.width = '300px';
element.style.padding = '20px';
console.log(Total width: ${element.offsetWidth}px); // Відобразить ширину більше 300px

З іншого боку, якщо ми встановимо властивість на border-box, то ширина і висота елемента включатимуть контент, відступи і рамки. Це означає, що якщо ми встановимо ширину елемента на 300 пікселів і додамо 20 пікселів відступу, то загальна ширина все одно буде 300 пікселів, але контент займе менше місця.

Приклад:

let element = document.getElementById('myElement');
element.style.boxSizing = 'border-box';
element.style.width = '300px';
element.style.padding = '20px';
console.log(Total width: ${element.offsetWidth}px); // Відобразить ширину 300px

Використання border-box може бути корисним для збереження узгодженої ширини елементів при додаванні відступів та рамок, що може полегшити створення адаптивних макетів. Це особливо корисно при роботі з flexbox або grid layout, де важливо контролювати розміри елементів.

Ще один випадок використання boxSizing полягає в тому, що він дозволяє уникнути проблем з переповненням елементів. Наприклад, якщо у вас є контейнер з фіксованою шириною, і ви додаєте до нього елементи з великими відступами або рамками, встановлення boxSizing на border-box дозволить уникнути того, що ці елементи будуть виходити за межі контейнера.

Приклад:

let container = document.getElementById('container');
let child = document.createElement('div');
child.style.boxSizing = 'border-box';
child.style.width = '100%';
child.style.padding = '10px';
container.appendChild(child);

Таким чином, element.style.boxSizing є важливою властивістю для управління розмірами елементів на сторінці. Використання цієї властивості дозволяє більш точно контролювати, як відступи і рамки впливають на загальні розміри елементів, що особливо корисно для створення адаптивних і стабільних макетів.

автор: Bond

Порада

Використовуйте content-box для елементів, де важливо враховувати тільки розмір контенту. Це може бути корисно для внутрішніх елементів, де розмір контенту визначає розмір контейнера, а не зовнішні рамки чи відступи. Наприклад:

element.style.boxSizing = 'content-box';

дозволить вам зосередитися на управлінні саме контентом, не враховуючи додаткові стилі, що можуть вплинути на загальні розміри.

автор: Bond

Синтаксис

element.style.boxSizing

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
10 29 5.1 7 12 8
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4 18 29 6

Приклади

+ запропонувати свій приклад у пісочниці

У цьому прикладі ми використовуємо boxSizing для елемента форми, встановлюючи значення border-box. Це дозволяє забезпечити, що ширина елемента буде завжди 100% від ширини батьківського контейнера, враховуючи всі відступи та рамки. Такий підхід корисний для форм, де важливо зберегти узгоджений розмір незалежно від стилів, що застосовуються до елементів.

HTML

<form id="myFormElement">
    <label>Ім'я: <input type="text" name="name" value="Лесь"></label>
    <button type="submit">Надіслати</button>
</form>

JS

let formElement = document.getElementById('myFormElement');
formElement.style.width = '100%';
formElement.style.padding = '10px';
formElement.style.border = '2px solid #000';
formElement.style.boxSizing = 'border-box';
автор: Bond

У цьому прикладі ми застосовуємо boxSizing для елемента сітки з фіксованими відступами і рамками. Використання значення border-box дозволяє впевнитися, що ширина елемента буде чітко відповідати 25% від ширини батьківського контейнера, незалежно від доданих відступів та рамок. Це особливо корисно при створенні адаптивних сіток, де важливо, щоб елементи залишалися у межах своїх визначених розмірів.

HTML

<div id="myGridItem">Демонстраційний елемент</div>

JS

let gridItem = document.getElementById('myGridItem');
gridItem.style.width = '25%';
gridItem.style.padding = '15px';
gridItem.style.border = '1px solid #ccc';
gridItem.style.boxSizing = 'border-box';
автор: Bond

Цей код створює блок на сторінці з початковим значенням властивості boxSizing, встановленим на content-box. Коли користувач натискає кнопку, властивість перемикається на border-box. Це дозволяє користувачу побачити, як змінюється загальний розмір елемента в залежності від способу обчислення його ширини та висоти. У режимі border-box padding та border включаються в розміри, що змінює поведінку елемента на сторінці.

автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід