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
/* Keyword values */ background-size: cover; background-size: contain; /* One-value syntax */ /* the width of the image (height becomes 'auto') */ background-size: 50%; background-size: 3.2em; background-size: 12px; background-size: auto; /* Two-value syntax */ /* first value: width of the image, second value: height */ background-size: 50% auto; background-size: 3em 25%; background-size: auto 6px; background-size: auto auto; /* Multiple backgrounds */ background-size: auto, auto; /* Not to be confused with `auto auto` */ background-size: 50%, 25%, 25%; background-size: 6px, auto, contain; /* Global values */ background-size: inherit; background-size: initial; background-size: revert; background-size: revert-layer; background-size: unset;
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 , a , 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 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 Formal syntax
background-size =
#=
[ | auto ] |
cover |
contain=
|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.
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
Specifications
Specification CSS Backgrounds and Borders Module Level 3
# the-background-sizeBrowser compatibility
BCD tables only load in the browser
See also
- Resizing background images
- Scaling of SVG backgrounds
- object-fit
Found a content problem with this page?
- Edit the page on GitHub.
- Report the content issue.
- View the source on GitHub.
This page was last modified on Jul 18, 2023 by MDN contributors.
Your blueprint for a better internet.
MDN
Support
- Product help
- Report an issue
Our communities
Developers
- Web Technologies
- Learn Web Development
- MDN Plus
- Hacks Blog
- Website Privacy Notice
- Cookies
- Legal
- Community Participation Guidelines
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998– 2023 by individual mozilla.org contributors. Content available under a Creative Commons license.Растянуть фон по вертикали и горизонтали на всю ширину блока CSS
В документации сказано, что background-size:cover растягивает изображение так, чтобы оно по высоте и(или) по ширине было растянуто по всему блоку, но картинка растягивается только по ширине (в качестве фона использую картинку 1200×700). Если сделать экран очень маленьким в ширину, то виден пробел между фоном и концом блока. Можно ли как-нибудь сделать так, чтобы фон пропорционально растягивался и по ширине и по высоте. Я предполагаю, что изображение должно увеличиваться, если ему не хватает расстояния до одной из сторон.
Отслеживать
simply good
задан 30 окт 2016 в 21:47
simply good simply good
566 1 1 золотой знак 6 6 серебряных знаков 20 20 бронзовых знаков
Там, наверное, вначале сообщения должно быть background-size: cover;
2 дек 2017 в 0:54
Проверьте reset css. Возможно проблема в обнулении отступов и рамки
14 апр 2021 в 11:125 ответов 5
Сортировка: Сброс на вариант по умолчанию
background-size: 100% 100%;Если же мы напишем вот так background-size: 100%; то это интерпритируется как background-size: 100% auto; то есть высота будет выравниваться пропорционально, а нам это не нужно, по этому нужно явно указать что высота должна быть не авто а 100% от высоты блока. Изи катка
Отслеживать
ответ дан 11 авг 2019 в 10:58
Алексей Соснин Алексей Соснин
465 1 1 золотой знак 5 5 серебряных знаков 9 9 бронзовых знаковБез воспроизводимого примера в вопросе сложно предположить в чем именно проблема. Вам подойдет именно background-size: cover; , он возможно не срабатывает по нескольким причинам. Например, само изображение фона содержит белые полосы, откройте изображение и посмотрите есть ли они там. Например, возможно, изображение не отцентрировано. Например, возможно другие стили перекрывают ваши, посмотрите в инспекторе. Или возможно сам блок, на который вы добавляете фон не на всю высоту или ширину нужного блока. Вот небольшой наглядный пример с фонами, возможно вам поможет:
span < display: inline-block; padding: 6px; color: #2d5857; font-family: sans-serif; font-weight: 600; font-size: 20px; background: white; margin: 6px; >div < color: white; height: 100vh; background-image: url(https://i.stack.imgur.com/WXyZl.jpg); border: 6px solid yellow; margin-bottom: 6px; >.bg_1 < background-position: center; >.bg_2 < background-size: cover; >.bg_3 < background-size: contain; >.bg_4 < background-size: cover; background-position: center; >.bg_5 < background-size: contain; background-repeat: no-repeat; background-position: center; >.bg_6
no stylesbackground-position: center;background-size: cover;background-size: contain;background-size: cover;
background-position: center;background-size: contain;
background-repeat: no-repeat;
background-position: center;background-position: bottom 10px right 40px;
background-size: 60px 120px;
background-repeat: no-repeat;How to Stretch a Background Image to Fit a Web Page
Jennifer Kyrnin is a professional web developer who assists others in learning web design, HTML, CSS, and XML.
Updated on February 22, 2021
Reviewed by- Saint Mary-of-the-Woods College
Jessica Kormos is a writer and editor with 15 years’ experience writing articles, copy, and UX content for Tecca.com, Rosenfeld Media, and many others.
What to Know
- Preferred method: Use the CSS3 property for background-size and set it to cover.
- Alternate method: Use the CSS3 property for background-size set to 100% and background-position set to center.
This article explains two ways to stretch a background image to fit a web page using CSS3.
The Modern Way
Images are an important part of attractive website designs. They add visual interest to a page and help you achieve the design you are looking for. When you work with background images, you may want an image to stretch to fit the page despite the wide range of devices and screen sizes.
The best way to stretch an image to fit the background of an element is to use the CSS3 property, for background-size, and set it equal to cover.
div background-image: url('background.jpg');
background-size: cover;
background-repeat: no-repeat;
>Take a look at this example of it in action. Here’s the HTML in the image below.
![Example HTML for CSS background cover]()
Now, take a look at the CSS. It’s not much different than the code above. There are a few additions to make it clearer.
![CSS background cover example]()
Now, this is the result in full screen.
![CSS background cover full screen desktop]()
By setting background-size to cover, you guarantee that browsers will automatically scale the background image, however large, to cover the entire area of the HTML element that it’s being applied to. Take a look at a narrower window.
![CSS background cover on small screen]()
According to caniuse.com, this method is supported by over 90 percent of browsers, making it an obvious choice in most situations. It does create some problems with Microsoft browsers, so a fallback might be necessary.
The Fallback Way
Here is an example that uses a background image for the body of a page and which sets the size to 100% so that it will always stretch to fit the screen. This method isn’t perfect, and it might cause some uncovered space, but by using the background-position property, you should be able to eliminate the problem and still accommodate older browsers.
body background: url('bgimage.jpg');
background-repeat: no-repeat;
background-size: 100%;
background-position: center;
>Using the example from above with the background-size set to 100% instead, you can see that the CSS looks mostly the same.
:max_bytes(150000):strip_icc()/css-background-100-example-3acfb4a7de454a699b82b30a8b056e6e.jpg)
The result on a full-screen browser or one with similar dimensions to the image is nearly identical. However, with a narrower screen, the flaws start to show.
:max_bytes(150000):strip_icc()/css-background-100-small-screen-41f9ac0fe8df4af688adffcdd8e7147a.jpg)
Clearly, it isn’t ideal, but it will work as a fallback.
According to caniuse.com, this property works in IE 9+, Firefox 4+, Opera 10.5+, Safari 5+, Chrome 10.5+, and on all the major mobile browsers. This covers you for all the modern browsers available today, which means you should use this property without fear that it will not work on someone’s screen.
Between these two methods, you shouldn’t have any difficulty supporting nearly all browsers. As background-size: cover gains even more acceptance among browsers, even this fallback will become unnecessary. Clearly, CSS3 and more responsive design practices have simplified and streamlined using images as adaptive backgrounds within HTML elements.
CSS: як розтягнути фон на весь елемент чи вікно?
Щоб розтягнути фон можна скористатися масштабуванням. Щоб відмасштабувати фон, існує CSS властивість background-size. Воно приймає значення 100%, внаслідок чого фонова картинка будь-якого елемента (body, div та ін.) буде розтягнута відповідно до розмірів елемента.
Ця властивість підтримується більшістю сучасних браузерів. Internet Explorer як завжди відзначився та підтримує властивість background-size тільки у версії 9+.
Використання
background: url(background.png) no-repeat; -webkit-background-size: 100%; -o-background-size: 100%; -moz-background-size: 100%; -ms-background-size: 100%; -khtml-background-size: 100%; background-size: 100%;
Підручник Swift
- Що таке Swift
- Swift: Базові поняття
- Swift: Константи і Змінні
- Swift: Типові анотації
- Swift: Назви констант та змінних
- Swift: Друкування констант та змінних
- Swift: Коментарі та крапка з комою
- Swift: Цілі числа

:max_bytes(150000):strip_icc()/html-background-example-15e4a8f1a6724b3ca187b2bcc19650e8.jpg)
:max_bytes(150000):strip_icc()/css-background-cover-example-48a4b4f299a848308f0037b063b0d05e.jpg)
:max_bytes(150000):strip_icc()/css-background-cover-fullscreen-121a93586a864318a7c0e9fbaf69f226.jpg)
:max_bytes(150000):strip_icc()/css-background-cover-small-screen-9f1f260efacf4bf4b94217e6c106734d.jpg)