- CSS-свойство background
- Синтаксис
- Значения и примеры использования
- Background-color
- Background-image
- Background-repeat
- Background-position
- Background-size
- Background-attachment
- Нюансы
- Материалы по теме
- CSS background-size Property
- Definition and Usage
- Browser Support
- CSS Syntax
- Property Values
- More Examples
- Example
- Example
- Example
- Example
- Example
- Resizing background images with background-size
- Tiling a large image
- HTML
- CSS
- Result
- Stretching an image
- Scaling an image up
- Special values: «contain» and «cover»
- contain
- HTML
- CSS
- Result
- cover
- HTML
- CSS
- Result
- See also
- Found a content problem with this page?
- background — size
- Кратко
- Пример
CSS-свойство background
Свойство background позволяет установить фоновое изображение, цвет фона и другие свойства стиля для заданного элемента.
background также объединяет в себе несколько других свойств:
- background-color — задаёт цвет фона элемента;
- background-image — устанавливает фоновое изображение для элемента;
- background-position — определяет начальную позицию фонового изображения;
- background-repeat — указывает, должно ли фоновое изображение повторяться;
- background-size — устанавливает размер фонового изображения;
- background-attachment — определяет, будет ли фоновое изображение прокручиваться вместе с содержимым элемента.
👉 Свойство поддерживается современными браузерами. Актуальная информация — на caniuse.com.
Синтаксис
Значения и примеры использования
Background-color
Свойство background-color задаёт цвет фона элемента. Значение задаётся в виде hex-кодов, RGB-функций или названий цветов:
background-color: #FFA500; /* Устанавливает оранжевый цвет фона с помощью hex-кода */ background-color: rgb(255, 0, 0); /* Устанавливает красный цвет фона с помощью RGB-значения */ background-color: rgba(255, 0, 0, 0.5); /* Устанавливает полупрозрачный красный фон с помощью RGBA- значения */ background-color: white; /* Устанавливает цвет фона с помощью ключевого слова */ background-color: transparent; /* Устанавливает прозрачный фон элемента */ background-color: inherit; /* Наследует значение цвета фона от родительского элемента */
Background-image
Свойство background-image позволяет задать изображение в качестве фона элемента. Это может быть любой тип изображения, включая jpeg, png, gif, svg и другие. Значение этого свойства указывается в формате URL, который ссылается на изображение.
Также есть возможность использовать несколько изображений для фона. Для этого нужно указать несколько значений url() через запятую. При этом каждое изображение будет располагаться друг над другом, начиная с первого указанного значения.
Background-repeat
Свойство background-repeat определяет, как фоновое изображение будет повторяться внутри элемента, когда оно меньше размера элемента.
background-repeat может принимать следующие значения:
- repeat — изображение будет повторяться как по горизонтали, так и по вертикали (это значение является значением по умолчанию).
- repeat-x — изображение повторяется только по горизонтали.
- repeat-y — изображение повторяется только по вертикали.
- no-repeat — изображение будет отображаться только один раз.
Background-position
Свойство background-position устанавливает позицию фона. Задаётся в процентах или пикселях относительно верхнего левого угла элемента. Чтобы выровнять центральную часть фонового изображения по центру элемента, можно использовать значение 50% 50% , где первое значение указывает позицию по горизонтали, а второе по вертикали.
Background-size
Свойство background-size позволяет установить размеры фонового изображения. Значение может быть указано в пикселях, процентах, которые рассчитываются от размера элемента, или любых других доступных для CSS единицах измерения. Также можно указать ключевое слово:
- auto — значение по умолчанию и оно указывает на то, что размер фонового изображения должен быть равен его исходному размеру.
- cover — фоновое изображение будет растянуто по всей ширине и высоте элемента, что приведет к обрезанию изображения, если его размеры не соответствуют размерам элемента. При этом гарантируется, что весь элемент будет полностью заполнен изображением.
- contain — фоновое изображение будет изменено пропорционально, чтобы подходить размеру элемента, что гарантирует, что вся картинка будет видна в элементе. Однако возможно оставление пустых областей с двух сторон элемента.
Background-attachment
Свойство background-attachment указывает, будет ли фон элемента прокручиваться вместе с содержимым страницы или останется на месте.
- scroll — фоновое изображение прокручивается вместе с элементом, как обычный фон.
- fixed — фоновое изображение остается на месте, когда элемент прокручивается.
- local — фоновое изображение фиксируется с учётом поведения элемента. Если элемент имеет прокрутку, то фон будет прокручиваться вместе с содержимым, но фон, выходящий за рамки элемента, остаётся на месте.
Нюансы
- Если одновременно установлены background-color и background-image , то background-image будет отображаться поверх цвета фона.
- Если установлен background-attachment: fixed , то позиционирование фона осуществляется относительно окна браузера, а не относительно элемента, на который установлен фон.
- Если значение background-size указано в процентах, то размер изображения будет задаваться относительно размера элемента.
Материалы по теме
«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.
CSS background-size Property
Specify the size of a background-image with «auto» and in pixels:
#example1 <
background: url(mountain.jpg);
background-repeat: no-repeat;
background-size: auto;
>
#example2 background: url(mountain.jpg);
background-repeat: no-repeat;
background-size: 300px 100px;
>
More «Try it Yourself» examples below.
Definition and Usage
The background-size property specifies the size of the background images.
There are four different syntaxes you can use with this property: the keyword syntax («auto», «cover» and «contain»), the one-value syntax (sets the width of the image (height becomes «auto»), the two-value syntax (first value: width of the image, second value: height), and the multiple background syntax (separated with comma).
Default value: | auto |
---|---|
Inherited: | no |
Animatable: | yes. Read about animatable Try it |
Version: | CSS3 |
JavaScript syntax: | object.style.backgroundSize=»60px 120px» Try it |
Browser Support
The numbers in the table specify the first browser version that fully supports the property.
Numbers followed by -webkit-, -moz-, or -o- specify the first version that worked with a prefix.
CSS Syntax
Property Values
Value | Description | Demo |
---|---|---|
auto | Default value. The background image is displayed in its original size | Demo ❯ |
length | Sets the width and height of the background image. The first value sets the width, the second value sets the height. If only one value is given, the second is set to «auto». Read about length units | Demo ❯ |
percentage | Sets the width and height of the background image in percent of the parent element. The first value sets the width, the second value sets the height. If only one value is given, the second is set to «auto» | Demo ❯ |
cover | Resize the background image to cover the entire container, even if it has to stretch the image or cut a little bit off one of the edges | Demo ❯ |
contain | Resize the background image to make sure the image is fully visible | Demo ❯ |
initial | Sets this property to its default value. Read about initial | |
inherit | Inherits this property from its parent element. Read about inherit |
More Examples
Example
Specify the size of a background image with percent:
#example1 <
background: url(mountain.jpg);
background-repeat: no-repeat;
background-size: 100% 100%;
>
#example2 background: url(mountain.jpg);
background-repeat: no-repeat;
background-size: 75% 50%;
>
Example
Specify the size of a background image with «cover»:
Example
Specify the size of a background image with «contain»:
Example
Here we have two background images. We specify the size of the first background image with «contain», and the second background-image with «cover»:
#example1 <
background: url(img_tree.gif), url(mountain.jpg);
background-repeat: no-repeat;
background-size: contain, cover;
>
Example
Use different background properties to create a «hero» image:
.hero-image <
background-image: url(«photographer.jpg»); /* The image used */
background-color: #cccccc; /* Used if the image is unavailable */
height: 500px; /* You must set a specified height */
background-position: center; /* Center the image */
background-repeat: no-repeat; /* Do not repeat the image */
background-size: cover; /* Resize the background image to cover the entire container */
>
Resizing background images with background-size
The background-size CSS property lets you resize the background image of an element, overriding the default behavior of tiling the image at its full size by specifying the width and/or height of the image. By doing so, you can scale the image upward or downward as desired.
Tiling a large image
Let’s consider a large image, a 2982×2808 Firefox logo image. We want (for some reason likely involving horrifyingly bad site design) to tile four copies of this image into a 300×300-pixel element. To do this, we can use a fixed background-size value of 150 pixels.
HTML
div class="tiledBackground">div>
CSS
.tiledBackground background-image: url(https://www.mozilla.org/media/img/logos/firefox/logo-quantum.9c5e96634f92.png); background-size: 150px; width: 300px; height: 300px; border: 2px solid; color: pink; >
Result
Stretching an image
You can also specify both the horizontal and vertical sizes of the image, like this:
background-size: 300px 150px;
The result looks like this:
Scaling an image up
On the other end of the spectrum, you can scale an image up in the background. Here we scale a 32×32 pixel favicon to 300×300 pixels:
.square2 background-image: url(favicon.png); background-size: 300px; width: 300px; height: 300px; border: 2px solid; text-shadow: white 0px 0px 2px; font-size: 16px; >
As you can see, the CSS is actually essentially identical, save the name of the image file.
Special values: «contain» and «cover»
Besides values, the background-size CSS property offers two special size values, contain and cover . Let’s take a look at these.
contain
The contain value specifies that, regardless of the size of the containing box, the background image should be scaled so that each side is as large as possible while not exceeding the length of the corresponding side of the container. Try resizing the example below to see this in action.
HTML
div class="bgSizeContain"> p>Try resizing this element!p> div>
CSS
.bgSizeContain background-image: url(https://www.mozilla.org/media/img/logos/firefox/logo-quantum.9c5e96634f92.png); background-size: contain; width: 160px; height: 160px; border: 2px solid; color: pink; resize: both; overflow: scroll; >
Result
cover
The cover value specifies that the background image should be sized so that it is as small as possible while ensuring that both dimensions are greater than or equal to the corresponding size of the container. Try resizing the example below to see this in action.
HTML
div class="bgSizeCover"> p>Try resizing this element!p> div>
CSS
.bgSizeCover background-image: url(https://www.mozilla.org/media/img/logos/firefox/logo-quantum.9c5e96634f92.png); background-size: cover; width: 160px; height: 160px; border: 2px solid; color: pink; resize: both; overflow: scroll; >
Result
See also
Found a content problem with this page?
This page was last modified on May 24, 2023 by MDN contributors.
Your blueprint for a better internet.
background — size
Нужно чтобы фоновая картинка заняла всю площадь элемента? Вам нужно это свойство!
Время чтения: меньше 5 мин
Кратко
Скопировать ссылку «Кратко» Скопировано
Свойство background — size позволяет изменять размер фонового изображения. Если фоновая картинка не совпадает по размеру с размерами блока, то при помощи этого свойства можно сделать так, чтобы она, картинка занимала всю площадь блока или, наоборот, была определённого размера.
Пример
Скопировать ссылку «Пример» Скопировано
Создадим блок и в качестве фона зададим ему красивую панораму:
div class="element">div>
.element height: 100vh; background-color: #f1f1f1; background-image: url("landscape.jpg"); background-repeat: no-repeat;>
.element height: 100vh; background-color: #f1f1f1; background-image: url("landscape.jpg"); background-repeat: no-repeat; >
Попробуйте поменять размеры фоновой картинки и посмотреть, как будет меняться фоновый паттерн.