background-size
For more information about the supported length units, see the CSS Values and Units Reference.
percentage An integer, followed by a percent (%). A percentage value is relative to the background positioning area.
Examples
Basic list of syntax examples for background-size.
HTML structure of a series of <div> s that are identical except that they have different background-size values applied to the background image.
CSS applied to the HTML example seen above.
Notes
Remarks
An auto value for one dimension is resolved by using the image’s intrinsic ratio and the size of the other dimension. If either of these values is not available, the image’s intrinsic size is used. If the image’s intrinsic size is not available, it is assigned the value of 100%. If both values are auto , use the intrinsic width, height, or both, of the image. If the image has neither an intrinsic width nor an intrinsic height, its size is determined as for contain . Negative values are not allowed. In Windows Internet Explorer 9, the background of a box can have multiple layers. The number of layers is determined by the number of comma-separated values in the background-image property. Each of the images is sized, positioned, and tiled according to the corresponding value in the other background properties (background-attachment, background-clip, background-origin, background-position, background-repeat, and background-size). The first image in the list is the layer closest to the user, the next one is painted behind the first, and so on.
background-size
The background-size CSS property sets the size of the element’s background image. The image can be left to its natural size, stretched, or constrained to fit the available space.
Try it
Spaces not covered by a background image are filled with the background-color property, and the background color will be visible behind background images that have transparency/translucency.
Syntax
The background-size property is specified in one of the following ways:
- Using the keyword values contain or cover .
- Using a width value only, in which case the height defaults to auto .
- Using both a width and a height value, in which case the first sets the width and the second sets the height. Each value can be a <length> , a <percentage> , or auto .
To specify the size of multiple background images, separate the value for each one with a comma.
Values
Scales the image as large as possible within its container without cropping or stretching the image. If the container is larger than the image, this will result in image tiling, unless the background-repeat property is set to no-repeat .
Scales the image (while preserving its ratio) to the smallest possible size to fill the container (that is: both its height and width completely cover the container), leaving no empty space. If the proportions of the background differ from the element, the image is cropped either vertically or horizontally.
Scales the background image in the corresponding direction such that its intrinsic proportions are maintained.
Stretches the image in the corresponding dimension to the specified length. Negative values are not allowed.
Stretches the image in the corresponding dimension to the specified percentage of the background positioning area. The background positioning area is determined by the value of background-origin (by default, the padding box). However, if the background’s background-attachment value is fixed , the positioning area is instead the entire viewport. Negative values are not allowed.
Intrinsic dimensions and proportions
The computation of values depends on the image’s intrinsic dimensions (width and height) and intrinsic proportions (width-to-height ratio). These attributes are as follows:
- A bitmap image (such as JPG) always has intrinsic dimensions and proportions.
- A vector image (such as SVG) does not necessarily have intrinsic dimensions. If it has both horizontal and vertical intrinsic dimensions, it also has intrinsic proportions. If it has no dimensions or only one dimension, it may or may not have proportions.
- CSS <gradient> s have no intrinsic dimensions or intrinsic proportions.
- Background images created with the element() function use the intrinsic dimensions and proportions of the generating element.
Note: In Gecko, background images created using the element() function are currently treated as images with the dimensions of the element, or of the background positioning area if the element is SVG, with the corresponding intrinsic proportion. This is non-standard behavior.
Based on the intrinsic dimensions and proportions, the rendered size of the background image is computed as follows:
- If both components of background-size are specified and are not auto : The background image is rendered at the specified size.
- If the background-size is contain or cover : While preserving its intrinsic proportions, the image is rendered at the largest size contained within, or covering, the background positioning area. If the image has no intrinsic proportions, then it’s rendered at the size of the background positioning area.
- If the background-size is auto or auto auto :
- If the image has both horizontal and vertical intrinsic dimensions, it’s rendered at that size.
- If the image has no intrinsic dimensions and has no intrinsic proportions, it’s rendered at the size of the background positioning area.
- If the image has no intrinsic dimensions but has intrinsic proportions, it’s rendered as if contain had been specified instead.
- If the image has only one intrinsic dimension and has intrinsic proportions, it’s rendered at the size corresponding to that one dimension. The other dimension is computed using the specified dimension and the intrinsic proportions.
- If the image has only one intrinsic dimension but has no intrinsic proportions, it’s rendered using the specified dimension and the other dimension of the background positioning area.
Note: SVG images have a preserveAspectRatio attribute that defaults to the equivalent of contain ; an explicit background-size causes preserveAspectRatio to be ignored.
- If the image has intrinsic proportions, it’s stretched to the specified dimension. The unspecified dimension is computed using the specified dimension and the intrinsic proportions.
- If the image has no intrinsic proportions, it’s stretched to the specified dimension. The unspecified dimension is computed using the image’s corresponding intrinsic dimension, if there is one. If there is no such intrinsic dimension, it becomes the corresponding dimension of the background positioning area.
Note: Background sizing for vector images that lack intrinsic dimensions or proportions is not yet fully implemented in all browsers. Be careful about relying on the behavior described above, and test in multiple browsers to be sure the results are acceptable.
Formal definition
Initial value auto auto Applies to all elements. It also applies to ::first-letter and ::first-line . Inherited no Percentages relative to the background positioning area Computed value as specified, but with relative lengths converted into absolute lengths Animation type a repeatable list of Formal syntax
Examples
Tiling a large image
Let’s consider a large image, a 2982×2808 Firefox logo image. We want 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.
Как изменить размер фонового изображения с помощью CSS3
Размер фонового изображения может быть изменен и масштабирован. В CSS2.1 фоновые изображения, применяемые к контейнеру, сохраняют свои фиксированные размеры. К счастью CSS3 ввел свойство background-size, которое позволяет растянуть или сжать фон. Оно идеально подходит, если вы используете методы адаптивного веб-дизайна для создания шаблонов.
Здесь можете найти разные методы:
Абсолютное изменение размера
Когда мы устанавливаем фоновое изображение, ширина и высота изображения по умолчанию устанавливаются в «auto», которое сохраняет оригинальный размер изображения. А если необходимо изменить размер изображения, могут быть использованы абсолютные измерения для установления нового размера (px, em, cm и др).
Измерения высоты могут быть применены, используя свойство background-size с абсолютным измерением.
Давайте рассмотрим пример фонового изображения с измененным размером:
Пример
Относительное изменение размера с помощью процентов
Использование процентных значений может быть довольно полезным при адаптивном дизайне. Когда используется процентное значение, размеры основываются на элементе, а не изображении. Если свойство background-size установлено как «100% 100%», фоновое изображение будет растянуто таким образом, чтобы оно заполняло всю область контента.
Пример
Максимальное масштабирование размера
Когда свойство background-size установлено в значение «contain», фоновое изображение будет масштабировано таким образом, чтобы оно заполняло область контента. Но пропорции изображения (отношение высоты и ширины) будут сохранены.
Значение «contain» указывает, что фоновое изображение будет масштабировано независимо от размера контейнера таким образом, что каждая сторона была максимально больше, не переходя длину контейнера с соответствующей стороны.
Другими словами, изображение будет увеличиваться или уменьшаться пропорционально, но размеры контейнера не могут быть больше ширины и высоты.
Пример
Заполнение фоном
Когда свойство background-size установлено в значение «cover», фоновое изображение будет масштабировано таким образом, чтобы оно заполняло всю область контента. Изображение будет масштабировано, чтобы заполнить контентную область, но оно будет обрезано, если соотношения сторон различаются.
Пример
Установление разных фонов для разных устройств
Огромное фото на большом экране будет смотреться идеально, но на экране маленького устройства оно не будет таким эффектным. Тогда зачем загрузить большое фото, если вы все равно должны уменьшить его?
Можно использовать мультимедийные запросы для отображения разных изображений на разных устройствах.
Здесь используется правило @media. В данном примере можно увидеть одно большое изображение и другое поменьше. Они установлены так, чтобы быть отображены по-разному на разных устройствах. Вы увидите результат сами если измените ширину браузера.
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.
Property background-size 4.0
1.0 -webkit-9.0 4.0
3.6 -moz-4.1
3.0 -webkit-10.5
10.0 -o-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":