JavaRush /Курсы /Модуль 1: Web Core /Повторение фона

Повторение фона

Модуль 1: Web Core
10 уровень , 2 лекция
Открыта

3.1 Свойство background-repeat

Свойства background-repeat и background-size в CSS используются для управления тем, как фоновые изображения повторяются и масштабируются внутри элементов. Эти свойства предоставляют веб-разработчикам гибкие инструменты для создания визуально привлекательных фонов. Рассмотрим каждое из них подробнее.

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

Значения

  • repeat: изображение повторяется по горизонтали и вертикали (по умолчанию)
  • repeat-x: изображение повторяется только по горизонтали
  • repeat-y: изображение повторяется только по вертикали
  • no-repeat: изображение не повторяется

1. Значение repeat:

Повторяет изображение по горизонтали и вертикали.

CSS
      
        .repeat {
          width: 200px;
          height: 200px;
          background-image: url('https://cdn.javarush.com/images/article/cf9c5640-1f70-4b75-919f-b33540e9a54f/256.jpeg');
          background-size: 20px 20px;
          background-repeat: repeat;
          border: 1px solid #000;
        }
      
    
    
      .repeat {
        width: 200px;
        height: 200px;
        background-image: url('./img/emoji-alien.jpg');
        background-repeat: repeat;
        border: 1px solid #000;
      }
    
  
HTML
    
      <div class="repeat"></div>
    
  

2. Значение repeat-x:

Повторяет изображение по горизонтали.

CSS
      
        .repeat-x {
          width: 200px;
          height: 200px;
          background-image: url('https://cdn.javarush.com/images/article/cf9c5640-1f70-4b75-919f-b33540e9a54f/256.jpeg');
          background-size: 20px 20px;
          background-repeat: repeat-x;
          border: 1px solid #000;
        }
      
    
    
      .repeat-x {
        width: 200px;
        height: 200px;
        background-image: url('./img/emoji-alien.jpg');
        background-repeat: repeat-x;
        border: 1px solid #000;
      }
    
  
HTML
    
      <div class="repeat-x"></div>
    
  

3. Значение repeat-y:

Повторяет изображение по вертикали.

CSS
      
        .repeat-y {
          width: 200px;
          height: 200px;
          background-image: url('https://cdn.javarush.com/images/article/cf9c5640-1f70-4b75-919f-b33540e9a54f/256.jpeg');
          background-size: 20px 20px;
          background-repeat: repeat-y;
          border: 1px solid #000;
        }
      
    
    
      .repeat-y {
        width: 200px;
        height: 200px;
        background-image: url('./img/emoji-alien.jpg');
        background-repeat: repeat-y;
        border: 1px solid #000;
      }
    
  
HTML
    
      <div class="repeat-y"></div>
    
  

4. Значение no-repeat:

Изображение не повторяется.

CSS
      
        .no-repeat {
          width: 200px;
          height: 200px;
          background-image: url('https://cdn.javarush.com/images/article/cf9c5640-1f70-4b75-919f-b33540e9a54f/256.jpeg');
          background-size: 20px 20px;
          background-repeat: no-repeat;
          border: 1px solid #000;
        }
      
    
    
      .no-repeat {
        width: 200px;
        height: 200px;
        background-image: url('./img/emoji-alien.jpg');
        background-repeat: no-repeat;
        border: 1px solid #000;
      }
    
  
HTML
    
      <div class="no-repeat"></div>
    
  

Объяснение кода

  • .repeat: изображение повторяется по горизонтали и вертикали, заполняя весь элемент
  • .repeat-x: изображение повторяется только по горизонтали
  • .repeat-y: изображение повторяется только по вертикали
  • .no-repeat: изображение не повторяется и отображается только один раз

3.2 Свойство background-size

Свойство background-size управляет размером фонового изображения. Оно позволяет изменять размер изображения, чтобы оно лучше вписывалось в элемент.

Значения:

  • auto: размер изображения определяется автоматически (по умолчанию)
  • cover: изображение масштабируется, чтобы полностью покрыть элемент, сохраняя пропорции
  • contain: изображение масштабируется, чтобы полностью вписаться в элемент, сохраняя пропорции
  • Абсолютные значения: например, 100px 50px задают ширину и высоту изображения в пикселях
  • Процентные значения: например, 50% 50% задают ширину и высоту изображения в процентах от размера элемента

1. Размер по умолчанию (auto):

Размер изображения определяется автоматически (по умолчанию).

CSS
      
        .size-auto {
          width: 200px;
          height: 200px;
          background-image: url('https://cdn.javarush.com/images/article/cf9c5640-1f70-4b75-919f-b33540e9a54f/256.jpeg');
          background-size: 35px 35px;
          border: 1px solid #000;
        }
      
    
    
      .size-auto {
        width: 200px;
        height: 200px;
        background-image: url('./img/emoji-alien.jpg'); // оригинальный размер изображения - 35рх на 35рх
        background-size: auto;
        border: 1px solid #000;
      }
    
  
HTML
    
      <div class="size-auto"></div>
    
  

2. cover:

Изображение масштабируется, чтобы полностью покрыть элемент, сохраняя пропорции.

CSS
      
        .size-cover {
          width: 300px;
          height: 200px;
          background-image: url('https://cdn.javarush.com/images/article/cf9c5640-1f70-4b75-919f-b33540e9a54f/256.jpeg');
          background-size: cover;
          border: 1px solid #000;
        }
      
    
    
      .size-cover {
        width: 300px;
        height: 200px;
        background-image: url('./img/emoji-alien.jpg'); // оригинальный размер изображения - 35рх на 35рх
        background-size: cover;
        border: 1px solid #000;
      }
    
  
HTML
    
      <div class="size-cover"></div>
    
  

3. contain:

Изображение масштабируется, чтобы полностью вписаться в элемент, сохраняя пропорции.

CSS
      
        .size-contain {
          width: 300px;
          height: 200px;
          background-image: url('https://cdn.javarush.com/images/article/cf9c5640-1f70-4b75-919f-b33540e9a54f/256.jpeg');
          background-size: contain;
          border: 1px solid #000;
        }
      
    
    
      .size-contain {
        width: 300px;
        height: 200px;
        background-image: url('./img/emoji-alien.jpg'); // оригинальный размер изображения - 35рх на 35рх
        background-size: contain;
        border: 1px solid #000;
      }
    
  
HTML
    
      <div class="size-contain"></div>
    
  

4. Абсолютные значения:

Например, 100px 50px задают ширину и высоту изображения в пикселях.

CSS
      
        .size-pixels {
          width: 200px;
          height: 200px;
          background-image: url('https://cdn.javarush.com/images/article/cf9c5640-1f70-4b75-919f-b33540e9a54f/256.jpeg');
          background-size: 100px 50px;
          border: 1px solid #000;
        }
      
    
    
      .size-pixels {
        width: 200px;
        height: 200px;
        background-image: url('./img/emoji-alien.jpg');
        background-size: 100px 50px;
        border: 1px solid #000;
      }
    
  
HTML
    
      <div class="size-pixels"></div>
    
  

5. Процентные значения:

Например, 50% 50% задают ширину и высоту изображения в процентах от размера элемента.

CSS
      
        .size-percent {
          width: 200px;
          height: 200px;
          background-image: url('https://cdn.javarush.com/images/article/cf9c5640-1f70-4b75-919f-b33540e9a54f/256.jpeg');
          background-size: 50% 50%;
          border: 1px solid #000;
        }
      
    
    
      .size-percent {
        width: 200px;
        height: 200px;
        background-image: url('./img/emoji-alien.jpg');
        background-size: 50% 50%;
        border: 1px solid #000;
      }
    
  
HTML
    
      <div class="size-percent"></div>
    
  

Объяснение кода:

  • .size-auto: размер изображения определяется автоматически
  • .size-cover: изображение масштабируется, чтобы полностью покрыть элемент, сохраняя пропорции. Части изображения могут быть обрезаны
  • .size-contain: изображение масштабируется, чтобы полностью вписаться в элемент, сохраняя пропорции. Изображение будет целиком видно, но могут быть пустые области
  • .size-pixels: размер изображения задан в пикселях (100px по ширине и 50px по высоте)
  • .size-percent: размер изображения задан в процентах от размера элемента (50% по ширине и 50% по высоте)

3.3 Совместное использование background-repeat и background-size

Свойства background-repeat и background-size часто используются вместе для достижения желаемого эффекта отображения фоновых изображений.

Пример использования:

CSS
      
        .combined {
          width: 200px;
          height: 200px;
          background-image: url('https://cdn.javarush.com/images/article/cf9c5640-1f70-4b75-919f-b33540e9a54f/256.jpeg');
          background-repeat: no-repeat;
          background-size: cover;
          border: 1px solid #000;
        }
      
    
    
      .combined {
        width: 200px;
        height: 200px;
        background-image: url('./img/emoji-alien.jpg');
        background-repeat: no-repeat;
        background-size: cover;
        border: 1px solid #000;
      }
    
  
HTML
    
      <body>
        <div class="combined"></div>
      </body>
    
  

Объяснение кода:

  • background-repeat: no-repeat;: изображение не повторяется
  • background-size: cover;: изображение масштабируется, чтобы полностью покрыть элемент, сохраняя пропорции. Части изображения могут быть обрезаны
1
Задача
Модуль 1: Web Core, 10 уровень, 2 лекция
Недоступна
Фон (repeat)
Фон (repeat)
1
Задача
Модуль 1: Web Core, 10 уровень, 2 лекция
Недоступна
Фон (cover)
Фон (cover)
Комментарии (8)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Antony Уровень 22
19 сентября 2025
Можно добавить в ссылку w=150, в моем случае https://plus.unsplash.com/premium_photo-1683865776032-07bf70b0add1?w=150
Alija Уровень 28
3 июня 2025
Placeholders: https://picsum.photos/ Или кратко: https://picsum.photos/200 для квадратных https://picsum.photos/200/300 - для прямоугольных Размеры свои можете давать :)
No Name Уровень 1
22 мая 2025
+ лекции в копилке
Roman Уровень 2
4 мая 2025
Вторая задача тоже привела в тупик. Но потом нашел в поиске картинку 150 на 150 и вставил url. все заработало!
Maxim Kulikov Уровень 48
27 апреля 2025
Ни одного изображения нету, какая-то халатность
Ilona Уровень 23
14 марта 2025
Фоновое изображение должно быть размером 150x150 пикселей. Свойство background-size должно быть установлено в значение cover для масштабирования изображения. Как-то противоречие получилось
Vadim Makarenko Уровень 42
27 марта 2025
Вот и у меня та же проблема: Задать через background-size размеры фона можно, но тогда не будет cover, можно задать cover, но тогда валидация требует размеры. И то и другое невозможно, валидация требует убрать одно из объявлений. Размеры изображения в пикселях логично задать в растровом редакторе, что я и сделал. Но валидация упорно этого не видит. Тупик. Дополнил: правильное решение именно это и предполагает, причём путь можно писать "от фонаря". Непонятно.
Darja Уровень 49
12 февраля 2025
а в чем смысл демонстрировать пустые контейнеры с надписями в теме про изображения?