CSS background-repeat — повтор фонового зображення


Властивість background-repeat визначає як буде повторюватися фоновий малюнок, котрий встановлено за допомогою властивості background-image і як саме воно має повторюватися:

  • по горизонталі
  • по вертикалі
  • в обидва напрямки
  • чи рівномірно заповнить простір

Властивість background-repeat

Без задання малюнок повторюється так, щоб заповнити всю ширину та висоту блоку. Ви можете або взагалі скасувати повторення або налаштувати його тільки в потрібну сторону.

Фоновий малюнок розміщується згідно зі значеннями вказаними у властивості background-position. Якщо ніяке значення не вказане, фон розміщується у верхньому лівому кутку.

Припустимо вказувати кілька значень для кожного тла, перераховуючи значення через кому. при цьому послідовність переліку має бути такою ж яку ти задав у background-image.

автор: Svitlana

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

автор: NagarD

Синтаксис

background-repeat: repeat|repeat-x|repeat-y|no-repeat|initial|space|round|inherit;

Властивість background-repeat може отримувати 8 значень:

repeat

Фонове зображення повторюється по горизонталі і вертикалі.

автор: Svitlana

repeat-x

Фоновий малюнок повторюється тільки по горизонталі.

автор: Svitlana

repeat-y

Фоновий малюнок повторюється тільки по вертикалі.

автор: Svitlana

no-repeat

Встановлює фонове зображення в елементі без його повторень, положення якого визначається властивістю background-position.

автор: Svitlana

space

Зображення повторюється стільки раз, щоб повністю заповнити область; якщо це не вдається, між картинками додається порожній простір

автор: Svitlana

round

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

автор: Svitlana

initial

Встановлює властивість у значення без задання

автор: Svitlana

inherit

Вказує на спадковість властивості від свого батьківського елемента

автор: Svitlana

Значення без задання: repeat
Наслідує: Ні
Анімується: Ні
JavaScript синтаксис: object.style.backgroundRepeat="repeat-x"

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
1 1 1 3.5 12 4
одне тло 1.0 1.0 1.0 3.5 4.0
декілька тла 1.0 3.6 1.3 10.5 9.0
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 1
одне тло 2.1 1.0 3.2
декілька тла 2.1 1.0 3.2

Приклади

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

Те саме зображення тла: у верхньому блоці воно типово розмножується на всю площу, у нижньому no-repeat лишає його один раз.

HTML

<div class="box">repeat (типово)</div>
<div class="box once">no-repeat</div>

CSS

.box {
    height: 90px;
    margin-bottom: 8px;
    border: 1px solid #999;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26'%3E%3Ccircle cx='13' cy='13' r='12' fill='%230172ad'/%3E%3C/svg%3E");
}

.once {
    background-repeat: no-repeat;
}
автор: Svitlana

HTML

<h4>Властивість <code>background-repeat</code></h4>

<div class="demo">
	<div class="block no"><p>фонове зображення без повторення</p></div>
	<div class="block yes"><p> фонове зображення з повторенням</p></div>
</div>

CSS

* {
	box-sizing: border-box;
}
	
body {
	font-family: sans-serif;
	line-height: 1.45;
	font-size: 18px;
	padding: 16px 16px 0 16px;
	text-align: center;
}

h4 {
	color: #4f4f4f;
	font-weight: 400;
}

.demo {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.block {
	margin-top: 75px;
	width: 45vw;
	height: 150px;
	border: 8px solid #4f4f4f;
	font-family: monospace;
	font-size: .8em;
	color: #000;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='50' height='50' viewBox='0 0 40 40' preserveAspectRatio='none'%3E%3Crect width='40' height='40' fill='%23264653'/%3E%3Cpath d='M0 40 12 18 22 30 30 22 40 40Z' fill='%232a9d8f'/%3E%3Ccircle cx='30' cy='9' r='5' fill='%23e9c46a'/%3E%3C/svg%3E");
}

.no { background-repeat: no-repeat; }
.yes { background-repeat: repeat; }

.block > p {
	position: relative;
	top: -75px;
}
автор: Svitlana

Однакова плитка й однакова площа: space зберігає розмір зображення й додає проміжки, round проміжків не лишає, але змінює розмір самої плитки.

HTML

<div class="tile space">background-repeat: space</div>
<div class="tile round">background-repeat: round</div>

CSS

.tile {
    height: 130px;
    padding: 4px;
    margin-bottom: 10px;
    border: 1px solid #999;
    font: 13px sans-serif;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60'%3E%3Crect x='2' y='2' width='56' height='56' rx='10' fill='%230172ad'/%3E%3C/svg%3E");
    background-size: 60px 60px;
}

.space {
    background-repeat: space;
}

.round {
    background-repeat: round;
}
автор: NagarD

HTML

<div class="box">

<p>Цей приклад показує як працює властивість <strong>background-repeat</strong>. Спробуйте ввімкнуити різні перемикачі, щоб змінити відображення фонового зображення на сторінці.</p>

<div class="inputs">
  <input id="repeat" checked name="background-repeat" type="radio"/>
  <label for="repeat">repeat</label>
  <message for="repeat">Фонове зображення повторюється по горизонталі і вертикалі.</message>
  
  <input id="repeat-x" name="background-repeat" type="radio"/>
  <label for="repeat-x">repeat-x</label>
  <message for="repeat-x">Фоновий малюнок повторюється тільки по горизонталі.</message>
  
  <input id="repeat-y" name="background-repeat" type="radio"/>
  <label for="repeat-y">repeat-y</label>
  <message for="repeat-y">Фоновий малюнок повторюється тільки по вертикалі.</message>
  
  <input id="no-repeat" name="background-repeat" type="radio"/>
  <label for="no-repeat">no-repeat</label>
  <message for="no-repeat">Встановлює фонове зображення в елементі без його повторень, положення якого визначається властивістю background-position.</message>
  
  <input id="space" name="background-repeat" type="radio"/>
  <label for="space">space</label>
  <message for="space">Зображення повторюється стільки раз, щоб повністю заповнити область; якщо це не вдається, між картинками додається порожній простір.</message>
  
  <input id="round" name="background-repeat" type="radio"/>
  <label for="round">round</label>
  <message for="round">Зображення повторюється так, щоб в області помістилося ціле число малюнків; якщо це не вдається зробити, то фонові малюнки масштабуються.</message>
</div>

<p id="message">Фонове зображення повторюється по горизонталі і вертикалі.</p>
  
</div>

CSS

* {
  box-sizing: border-box;
}

body {
  font-family: sans-serif;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 40 40' preserveAspectRatio='none'%3E%3Crect width='40' height='40' fill='%23264653'/%3E%3Cpath d='M0 40 12 18 22 30 30 22 40 40Z' fill='%232a9d8f'/%3E%3Ccircle cx='30' cy='9' r='5' fill='%23e9c46a'/%3E%3C/svg%3E");
  background-repeat: repeat;
  padding: 16px;
}

.box {
  padding: 16px;
  background-color: rgba(255,255,255,.95);
  outline: 6px solid #4f4f4f;
  margin-top: 15%;
}

message {
  display: none;
}

JS

const message = document.querySelector('#message');

document.querySelectorAll('.inputs input').forEach((el) => el.addEventListener('change', function () {

  var messageText = document.querySelector("message[for='" + this.id + "']");
  message.textContent = messageText?.textContent ?? '';

  document.querySelectorAll('body').forEach((n) => n.style.setProperty('background-repeat', this.id));

}));
автор: Svitlana

HTML

<h4>background-repeat: repeat; </h4>
  <div class="repeat"></div>

  <h4>background-repeat: repeat-x;</h4>
  <div class="repeat-x"></div>

  <h4>background-repeat: repeat-y;</h4>
  <div class="repeat-y"></div>

  <h4>background-repeat: no-repeat;</h4>
  <div class="no-repeat"></div>

  <h4>background-repeat: space;</h4>
  <div class="space"></div>

  <h4>background-repeat: round;</h4>
  <div class="round"></div>

CSS

div {
  width: 500px;
  height: 150px;
  border: 3px solid #808080;
  margin-bottom: 40px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='90' viewBox='0 0 40 40' preserveAspectRatio='none'%3E%3Crect width='40' height='40' fill='%23264653'/%3E%3Cpath d='M0 40 12 18 22 30 30 22 40 40Z' fill='%232a9d8f'/%3E%3Ccircle cx='30' cy='9' r='5' fill='%23e9c46a'/%3E%3C/svg%3E");
  background-size: 45px 45px;
}

.repeat { background-repeat: repeat; }

.no-repeat { background-repeat: no-repeat; }

.repeat-x { background-repeat: repeat-x; }

.repeat-y { background-repeat: repeat-y; }

.space { background-repeat: space; }

.round { background-repeat: round; }
автор: Svitlana

Коментарі

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

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

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

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

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