W3docs

CSS-свойство background-repeat

background-repeat — CSS-свойство, задающее повторение фонового изображения. Изучите значения и примеры использования.

Свойство background-repeat управляет тем, как фоновое изображение повторяется (мозаично заполняет) область отрисовки элемента. По умолчанию фоновое изображение слишком мало, чтобы покрыть весь элемент, поэтому браузер повторяет его, как обои, — по обеим осям, — пока блок не заполнится.

На этой странице рассмотрены все значения background-repeat, когда каждое из них уместно, а также тонкая разница между space и round — двумя значениями, в которых чаще всего путаются.

Значения делятся на три группы:

  • Повторять или нет: repeat (значение по умолчанию) повторяет изображение по обоим направлениям; no-repeat показывает изображение один раз.
  • Повторять по одной оси: repeat-x — только горизонтально; repeat-y — только вертикально.
  • Повторять без обрезки плиток: space сохраняет каждую плитку целой и распределяет лишнее пространство в виде равных отступов между ними; round растягивает или сжимает плитки так, чтобы целое число плиток точно заполнило область без промежутков.

background-repeat работает совместно с background-image (задаёт изображение) и background-position (задаёт начальную точку мозаики). Это свойство также можно указать в сокращённом свойстве background.

Когда это использовать?

  • no-repeat чаще всего применяется в современных макетах — для единственного фонового фото, логотипа или иконки, которые затем масштабируются через background-size и позиционируются через background-position.
  • repeat идеально подходит для бесшовных текстур и паттернов (бумажное зерно, шум, сетки точек), которые должны заполнять блок любого размера.
  • repeat-x / repeat-y подходят для декоративных полос: повторяющейся верхней границы, вертикального разделителя или градиента, который должен повторяться по одной оси.
  • space / round важны, когда у изображения чёткие края (например, плитки или миниатюры) и нельзя допустить их обрезки на краю блока.
Информация

By default, the image will be displayed in the top left corner without background-position property.

Initial Valuerepeat
Applies toAll elements. It also applies to ::first-letter and ::first-line.
InheritedNo.
AnimatableNo.
VersionCSS1
DOM Syntaxelement.style.backgroundRepeat = "repeat-x";

Синтаксис

Синтаксис CSS-свойства background-repeat

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

Пример свойства background-repeat:

Пример CSS-свойства background-repeat со значением repeat

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      body {
        background-image: url("/uploads/media/default/0001/02/668fdd72934232cdeff7a45a89be805113c916b5.jpeg");
        background-repeat: repeat;
      }
    </style>
  </head>
  <body>
    <h2>This is some heading for an example.</h2>
    <p>Some paragraph for an example.</p>
  </body>
</html>

Результат

CSS-свойство background-repeat со значением repeat: изображение мозаично заполняет всю страницу

В следующем примере фоновое изображение отображается только один раз, поскольку установлено значение no-repeat.

Пример свойства background-repeat со значением "no-repeat":

Пример CSS-свойства background-repeat со значением no-repeat

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      body {
        background-image: url("/uploads/media/default/0001/02/668fdd72934232cdeff7a45a89be805113c916b5.jpeg");
        background-repeat: no-repeat;
      }
    </style>
  </head>
  <body>
    <h2>This is some heading for an example.</h2>
    <p>Some paragraph for an example.</p>
  </body>
</html>

В следующем примере фоновое изображение повторяется только горизонтально.

Пример свойства background-repeat со значением "repeat-x":

Пример CSS-свойства background-repeat со значением repeat-x

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      body {
        background-image: url("/uploads/media/default/0001/02/668fdd72934232cdeff7a45a89be805113c916b5.jpeg");
        background-repeat: repeat-x;
      }
    </style>
  </head>
  <body>
    <h2>This is some heading for an example.</h2>
    <p>Some paragraph for an example.</p>
  </body>
</html>

Здесь значение "repeat-y" заставляет изображение повторяться только по вертикали.

Пример свойства background-repeat со значением "repeat-y":

Пример CSS-свойства background-repeat со значением repeat-y

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      body {
        background-image: url("/uploads/media/default/0001/02/668fdd72934232cdeff7a45a89be805113c916b5.jpeg");
        background-repeat: repeat-y;
      }
    </style>
  </head>
  <body>
    <h2>This is some heading for an example.</h2>
    <p>Some paragraph for an example.</p>
  </body>
</html>

При значении space изображение сохраняет исходный размер — браузер размещает столько целых плиток, сколько помещается, и распределяет оставшееся пространство в виде равных промежутков между ними, так что ни одна плитка не обрезается.

Пример свойства background-repeat со значением "space":

Пример CSS-свойства background-repeat со значением space

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      body {
        background-image: url("/uploads/media/default/0001/02/668fdd72934232cdeff7a45a89be805113c916b5.jpeg");
        background-repeat: space;
      }
    </style>
  </head>
  <body>
    <h2>This is some heading for an example.</h2>
    <p>Some paragraph for an example.</p>
  </body>
</html>

При значении round промежутков нет вовсе: браузер масштабирует изображение вверх или вниз так, чтобы целое число плиток точно заполнило область. Это может незначительно искажать изображение — именно такой компромисс делает round, чтобы избежать промежутков.

Пример свойства background-repeat со значением "round":

Пример CSS-свойства background-repeat со значением round

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      body {
        background-image: url("/uploads/media/default/0001/02/668fdd72934232cdeff7a45a89be805113c916b5.jpeg");
        background-repeat: round;
      }
    </style>
  </head>
  <body>
    <h2>This is some heading for an example.</h2>
    <p>Some paragraph for an example.</p>
  </body>
</html>

Значения

ЗначениеОписаниеПример
repeatФоновое изображение повторяется горизонтально и вертикально. Это значение по умолчанию.Пример »
repeat-xФоновое изображение повторяется только горизонтально.Пример »
repeat-yФоновое изображение повторяется только вертикально.Пример »
no-repeatФоновое изображение не повторяется.Пример »
spaceИзображение повторяется столько раз, сколько целых копий умещается без обрезки; оставшееся пространство распределяется в виде равных отступов между плитками (первая и последняя плитки касаются краёв).Пример »
roundИзображение масштабируется так, чтобы целое число плиток заполнило область без промежутков; плитки растягиваются или сжимаются до нужного размера.Пример »
initialУстанавливает свойство в значение по умолчанию.Пример »
inheritНаследует свойство от родительского элемента.

Типичные ошибки

  • space и round — полноправные значения. Оба входят в стандарт и обеспечивают мозаику без обрезки плиток — space добавляет промежутки, round масштабирует изображение.
  • no-repeat не изменяет размер изображения. Чтобы одно изображение покрывало блок, сочетайте no-repeat с background-size.
  • Позиция определяет начало мозаики. При повторении background-position смещает всю сетку плиток, поэтому два варианта мозаики могут выглядеть по-разному даже с одним и тем же изображением — задавайте background-position осознанно.
  • Существует и двузначный синтаксис. Можно указать одно ключевое слово на каждую ось, например background-repeat: repeat-x; эквивалентно background-repeat: repeat no-repeat;.

Практика

Практика
Какие из перечисленных значений являются допустимыми для CSS-свойства 'background-repeat'?
Какие из перечисленных значений являются допустимыми для CSS-свойства 'background-repeat'?
Практика
Какое значение повторяет изображение без обрезки, добавляя равные промежутки между целыми плитками?
Какое значение повторяет изображение без обрезки, добавляя равные промежутки между целыми плитками?
Was this page helpful?