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


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

backgroundOrigin — це властивість об'єкта style, яка визначає, від якої частини елемента починається фон. Ця властивість встановлює початкову точку для розміщення фонових зображень, і може бути корисною для точного позиціонування фону в межах елемента. Основні значення властивості backgroundOrigin включають padding-box, border-box та content-box, кожне з яких визначає різні межі для відображення фону.

Значення padding-box (використовується за замовчуванням) встановлює початок фону від внутрішнього краю елемента, включаючи область відступу (padding). Це означає, що фон покриває область вмісту та відступів, але не включає границі (border) елемента. Наприклад:

element.style.backgroundOrigin = "padding-box";

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

element.style.backgroundOrigin = "border-box";

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

element.style.backgroundOrigin = "content-box";

Для кращого розуміння розглянемо приклади використання властивості backgroundOrigin у поєднанні з іншими властивостями, такими як backgroundImage, backgroundSize та backgroundRepeat.

Припустимо, у нас є HTML-елемент з наступним CSS:

<div id="myElement" style="width: 200px; height: 200px; padding: 20px; border: 10px solid black;">
    Це мій елемент
</div>

Для встановлення фону, який починається від внутрішнього краю, використовуйте:

let element = document.getElementById("myElement");
element.style.backgroundImage = "url('background.jpg')";
element.style.backgroundOrigin = "padding-box";

У цьому прикладі фон покриває область вмісту та відступи, але не заходить на межі елемента.

Щоб фон покривав всю область, включаючи межі:

element.style.backgroundImage = "url('background.jpg')";
element.style.backgroundOrigin = "border-box";

Цей код дозволить фону покривати всю область елемента, включаючи відступи та межі.

Якщо потрібно, щоб фон з'являвся лише в області вмісту, виключаючи відступи та межі:

element.style.backgroundImage = "url('background.jpg')";
element.style.backgroundOrigin = "content-box";

Тепер фон буде обмежено лише областю вмісту елемента.

Властивість backgroundOrigin також може використовуватися у поєднанні з іншими властивостями для створення складних візуальних ефектів. Наприклад, налаштування розміру фону та його позиції:

element.style.backgroundImage = "url('background.jpg')";
element.style.backgroundOrigin = "content-box";
element.style.backgroundSize = "cover";
element.style.backgroundPosition = "center";

У цьому випадку фонове зображення буде масштабовано, щоб повністю покрити область вмісту, та вирівняно по центру.

Властивість backgroundOrigin дозволяє точно контролювати розміщення фонів у межах HTML-елементів. Використовуючи різні значення цієї властивості, можна досягти бажаних результатів, від простого розміщення фону до складних ефектів позиціонування та масштабування. Це забезпечує гнучкість та точність у створенні візуально привабливих веб-сторінок.

автор: Bond

Порада

Переконайтеся, що значення backgroundOrigin узгоджується з іншими властивостями фону. Наприклад, використання backgroundOrigin разом з backgroundSize та backgroundPosition допоможе точно налаштувати відображення фону:

element.style.backgroundImage = "url('image.jpg')";
element.style.backgroundOrigin = "content-box";
element.style.backgroundSize = "cover";
element.style.backgroundPosition = "center";
автор: Bond
Порада

Враховуйте вплив властивостей відступу (padding) та межі (border) на відображення фону. Використання padding-box гарантує, що фон покриє відступи, але не межі, що може бути корисним для створення візуальних ефектів у межах елемента:

element.style.backgroundOrigin = "padding-box";
автор: Bond
Порада

Тестуйте фонове зображення на різних розмірах елементів та пристроях. Це дозволить переконатися, що фон відображається коректно та виглядає так, як ви задумали, незалежно від розмірів екрана. Наприклад, для забезпечення адаптивності:

element.style.backgroundOrigin = "border-box";
element.style.backgroundSize = "contain";
element.style.backgroundRepeat = "no-repeat";
автор: Bond

Синтаксис

element.style.backgroundOrigin

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
1 4 3 10.5 12 9
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4 18 4 1

Приклади

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

У цьому прикладі ми створюємо функцію, яка змінює значення backgroundOrigin для елемента div залежно від вибраного користувачем значення. Це дозволяє наочно побачити вплив різних значень backgroundOrigin на розміщення фонового зображення. Зверніть увагу на використання forEach для додавання обробників подій до кожної радіо-кнопки.

<div id="myDiv">Деякий текст</div>
<div>
  <label>
    <input type="radio" name="backgroundOrigin" value="border-box" checked>
    border-box
  </label>
  <label>
    <input type="radio" name="backgroundOrigin" value="padding-box">
    padding-box
  </label>
  <label>
    <input type="radio" name="backgroundOrigin" value="content-box">
    content-box
  </label>
</div>

<style>
#myDiv {
  width: 300px;
  height: 200px;
  padding: 20px;
  border: 10px solid #ccc;
  background-image: url('pattern.jpg');
  background-repeat: no-repeat;
}
</style>

<script>
const myDiv = document.getElementById('myDiv');
const radioButtons = document.querySelectorAll('input[name="backgroundOrigin"]');

radioButtons.forEach(radio => {
  radio.addEventListener('change', () => {
    if (radio.checked) {
      myDiv.style.backgroundOrigin = radio.value;
    }
  });
});
</script>
автор: Bond

У цьому прикладі ми демонструємо використання властивості backgroundOrigin для зміни початкової точки відліку для позиціонування фонового зображення елемента div з id="box". Користувач може вибрати одне із трьох значень (border-box, padding-box або content-box) за допомогою радіо-кнопок, і фонове зображення буде позиціонуватися відповідно до вибраного значення. Зверніть увагу на використання querySelectorAll для отримання всіх радіо-кнопок та addEventListener для додавання обробника події change до кожної радіо-кнопки.

автор: 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`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

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

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