Свойство CSS `background-image`
Базовая поддержка Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в разных версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
Свойство background-image CSS задаёт для элемента одно или несколько фоновых изображений.
Попробуйте
background-image: url("/shared-assets/images/examples/lizard.png");
background-image:
url("/shared-assets/images/examples/lizard.png"),
url("/shared-assets/images/examples/star.png");
background-image:
url("/shared-assets/images/examples/star.png"),
url("/shared-assets/images/examples/lizard.png");
background-image:
linear-gradient(rgb(0 0 255 / 0.5), rgb(255 255 0 / 0.5)),
url("/shared-assets/images/examples/lizard.png");
<section id="default-example"> <div id="example-element"></div> </section>
#example-element {
min-width: 100%;
min-height: 100%;
padding: 10%;
}
Синтаксис
/* single image */
background-image: linear-gradient(black, white);
background-image: url("cat-front.png");
/* multiple images */
background-image:
radial-gradient(circle, transparent 45%, black 48%),
radial-gradient(ellipse farthest-corner, #fc1c14 20%, #cf15cf 80%);
/* Global values */
background-image: inherit;
background-image: initial;
background-image: revert;
background-image: revert-layer;
background-image: unset;
Значения
Это свойство задаётся ключевым словом none или списком значений <image>, разделённых запятыми.
-
none - Ключевое слово, обозначающее отсутствие изображений.
-
<image> - Значение
<image>, обозначающее отображаемое изображение.
Описание
Свойство background-image задаёт фоновые изображения для элемента.
Вы можете задать элементу несколько фоновых изображений, указав список изображений, разделённых запятыми. Фоновые изображения отображаются друг над другом в отдельных слоях контекста наложения. Первое указанное изображение отображается так, как будто оно находится ближе всего к пользователю.
Затем поверх них отображаются границы элемента, а под ними — background-color. Способ отображения изображений относительно блока и его границ определяется свойствами CSS background-clip и background-origin.
Если указанное изображение не удаётся отобразить (например, когда не удаётся загрузить файл, указанный в URI), браузеры обрабатывают его так же, как значение none.
Примечание: Даже если изображения непрозрачны и цвет обычно не отображается, веб-разработчикам всегда следует указывать background-color. Если изображения не удаётся загрузить — например, при отключении сети, — в качестве резервного варианта будет использован цвет фона.
Доступность
Браузеры не предоставляют вспомогательным технологиям специальную информацию о фоновых изображениях. Это особенно важно для программ чтения с экрана: они не объявляют о наличии такого изображения и, следовательно, не сообщают о нём пользователям. Если изображение содержит информацию, важную для понимания общего назначения страницы, лучше описать её семантически в документе.
- MDN: пояснения к руководству 1.1 «Понимание WCAG»
-
[Понимание критерия успеха 1.1.1 «Понимание WCAG 2.0» W3C](https://www.w3.org/TR/UNDERSTANDING-WCAG20/text-equiv-all.html)
Кроме того, важно обеспечить достаточно высокий коэффициент контрастности между фоновым изображением и текстом на переднем плане, чтобы люди со слабым зрением могли читать содержимое страницы.
Коэффициент контрастности определяется сравнением яркости текста и цвета фона. Для соответствия Руководству по обеспечению доступности веб-контента (WCAG) коэффициент должен составлять 4,5:1 для основного текста и 3:1 для более крупного текста, например заголовков. Крупным считается текст размером 24 пикселя или больше либо полужирный текст размером 18,66 пикселя или больше.
- WebAIM: проверка контрастности цветов
- Пояснение к руководству 1.4 «Понимание WCAG»
-
[Понимание критерия успеха 1.4.3 «Понимание WCAG 2.0»](https://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-contrast.html), W3C (2023)
Формальное определение
| Исходное значение | none |
|---|---|
| Применяется к | всем элементам |
| Наследуется | нет |
| Вычисленное значение | как задано, но значения <url> преобразуются в абсолютные |
| Тип анимации | дискретный |
Формальный синтаксис
background-image = <bg-image># <bg-image> = <image> | none <image> = <url> | <image()> | <image-set()> | <element()> | <paint()> | <cross-fade()> | <gradient> <image()> = image( <image-tags>? [ <image-src>? , <color>? ]! ) <image-set()> = image-set( <image-set-option># ) <element()> = element( <id-selector> ) <paint()> = paint( <ident>, <declaration-value>? ) <cross-fade()> = cross-fade( <cf-mixing-image> , <cf-final-image>? ) <gradient> = <linear-gradient()> | <repeating-linear-gradient()> | <radial-gradient()> | <repeating-radial-gradient()> | <conic-gradient()> | <repeating-conic-gradient()> <image-tags> = ltr | rtl <image-src> = <url> | <string> <color> = <color-base> | currentColor | <system-color> | <light-dark()> | <deprecated-system-color> <image-set-option> = [ <image> | <string> ] [ <resolution> || type(<string>) ] <id-selector> = <hash-token> <cf-mixing-image> = <percentage>? && <image> <cf-final-image> = <image> | <color> <linear-gradient()> = linear-gradient( [ <linear-gradient-syntax> ] ) <repeating-linear-gradient()> = repeating-linear-gradient( [ <linear-gradient-syntax> ] ) <radial-gradient()> = radial-gradient( [ <radial-gradient-syntax> ] ) <repeating-radial-gradient()> = repeating-radial-gradient( [ <radial-gradient-syntax> ] ) <conic-gradient()> = conic-gradient( [ <conic-gradient-syntax> ] ) <repeating-conic-gradient()> = repeating-conic-gradient( [ <conic-gradient-syntax> ] ) <color-base> = <hex-color> | <color-function> | <named-color> | <color-mix()> | transparent <system-color> = AccentColor | AccentColorText | ActiveText | ButtonBorder | ButtonFace | ButtonText | Canvas | CanvasText | Field | FieldText | GrayText | Highlight | HighlightText | LinkText | Mark | MarkText | SelectedItem | SelectedItemText | VisitedText <light-dark()> = light-dark( <color>, <color> ) <deprecated-system-color> = ActiveBorder | ActiveCaption | AppWorkspace | Background | ButtonHighlight | ButtonShadow | CaptionText | InactiveBorder | InactiveCaption | InactiveCaptionText | InfoBackground | InfoText | Menu | MenuText | Scrollbar | ThreeDDarkShadow | ThreeDFace | ThreeDHighlight | ThreeDLightShadow | ThreeDShadow | Window | WindowFrame | WindowText <linear-gradient-syntax> = [ [ <angle> | <zero> | to <side-or-corner> ] || <color-interpolation-method> ]? , <color-stop-list> <radial-gradient-syntax> = [ [ [ <radial-shape> || <radial-size> ]? [ at <position> ]? ] || <color-interpolation-method> ]? , <color-stop-list> <conic-gradient-syntax> = [ [ [ from [ <angle> | <zero> ] ]? [ at <position> ]? ] || <color-interpolation-method> ]? , <angular-color-stop-list> <color-function> = <rgb()> | <rgba()> | <hsl()> | <hsla()> | <hwb()> | <lab()> | <lch()> | <oklab()> | <oklch()> | <color()> <named-color> = aliceblue | antiquewhite | aqua | aquamarine | azure | beige | bisque | black | blanchedalmond | blue | blueviolet | brown | burlywood | cadetblue | chartreuse | chocolate | coral | cornflowerblue | cornsilk | crimson | cyan | darkblue | darkcyan | darkgoldenrod | darkgray | darkgreen | darkgrey | darkkhaki | darkmagenta | darkolivegreen | darkorange | darkorchid | darkred | darksalmon | darkseagreen | darkslateblue | darkslategray | darkslategrey | darkturquoise | darkviolet | deeppink | deepskyblue | dimgray | dimgrey | dodgerblue | firebrick | floralwhite | forestgreen | fuchsia | gainsboro | ghostwhite | gold | goldenrod | gray | green | greenyellow | grey | honeydew | hotpink | indianred | indigo | ivory | khaki | lavender | lavenderblush | lawngreen | lemonchiffon | lightblue | lightcoral | lightcyan | lightgoldenrodyellow | lightgray | lightgreen | lightgrey | lightpink | lightsalmon | lightseagreen | lightskyblue | lightslategray | lightslategrey | lightsteelblue | lightyellow | lime | limegreen | linen | magenta | maroon | mediumaquamarine | mediumblue | mediumorchid | mediumpurple | mediumseagreen | mediumslateblue | mediumspringgreen | mediumturquoise | mediumvioletred | midnightblue | mintcream | mistyrose | moccasin | navajowhite | navy | oldlace | olive | olivedrab | orange | orangered | orchid | palegoldenrod | palegreen | paleturquoise | palevioletred | papayawhip | peachpuff | peru | pink | plum | powderblue | purple | rebeccapurple | red | rosybrown | royalblue | saddlebrown | salmon | sandybrown | seagreen | seashell | sienna | silver | skyblue | slateblue | slategray | slategrey | snow | springgreen | steelblue | tan | teal | thistle | tomato | turquoise | violet | wheat | white | whitesmoke | yellow | yellowgreen <color-mix()> = color-mix( <color-interpolation-method> , [ <color> && <percentage [0,100]>? ]#{2}) <side-or-corner> = [ left | right ] || [ top | bottom ] <color-interpolation-method> = in [ <rectangular-color-space> | <polar-color-space> <hue-interpolation-method>? | <custom-color-space> ] <color-stop-list> = <linear-color-stop> , [ <linear-color-hint>? , <linear-color-stop> ]#? <radial-shape> = circle | ellipse <radial-size> = <radial-extent> | <length [0,∞]> | <length-percentage [0,∞]>{2} <position> = [ [ left | center | right ] || [ top | center | bottom ] | [ left | center | right | <length-percentage> ] [ top | center | bottom | <length-percentage> ]? | [ [ left | right ] <length-percentage> ] && [ [ top | bottom ] <length-percentage> ] ] <angular-color-stop-list> = <angular-color-stop> , [ <angular-color-hint>? , <angular-color-stop> ]#? <rgb()> = rgb( <percentage>#{3} , <alpha-value>? ) | rgb( <number>#{3} , <alpha-value>? ) | rgb( [ <number> | <percentage> | none ]{3} [ / [ <alpha-value> | none ] ]? ) <rgba()> = rgba( <percentage>#{3} , <alpha-value>? ) | rgba( <number>#{3} , <alpha-value>? ) | rgba( [ <number> | <percentage> | none ]{3} [ / [ <alpha-value> | none ] ]? ) <hsl()> = hsl( <hue>, <percentage>, <percentage>, <alpha-value>? ) | hsl( [ <hue> | none ] [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ / [ <alpha-value> | none ] ]? ) <hsla()> = hsla( <hue>, <percentage>, <percentage>, <alpha-value>? ) | hsla( [ <hue> | none ] [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ / [ <alpha-value> | none ] ]? ) <hwb()> = hwb( [ <hue> | none ] [ <percentage> | <number> | none ] [ <percentage> | <number> | none ] [ / [ <alpha-value> | none ] ]? ) <lab()> = lab( [<percentage> | <number> | none] [ <percentage> | <number> | none] [ <percentage> | <number> | none] [ / [<alpha-value> | none] ]? ) <lch()> = lch( [<percentage> | <number> | none] [ <percentage> | <number> | none] [ <hue> | none] [ / [<alpha-value> | none] ]? ) <oklab()> = oklab( [ <percentage> | <number> | none] [ <percentage> | <number> | none] [ <percentage> | <number> | none] [ / [<alpha-value> | none] ]? ) <oklch()> = oklch( [ <percentage> | <number> | none] [ <percentage> | <number> | none] [ <hue> | none] [ / [<alpha-value> | none] ]? ) <color()> = color( [ from <color> ]? <colorspace-params> [ / [ <alpha-value> | none ] ]? ) <rectangular-color-space> = srgb | srgb-linear | display-p3 | display-p3-linear | a98-rgb | prophoto-rgb | rec2020 | lab | oklab | xyz | xyz-d50 | xyz-d65 <polar-color-space> = hsl | hwb | lch | oklch <hue-interpolation-method> = [ shorter | longer | increasing | decreasing ] hue <custom-color-space> = <dashed-ident> <linear-color-stop> = <color> <color-stop-length>? <linear-color-hint> = <length-percentage> <radial-extent> = closest-corner | closest-side | farthest-corner | farthest-side <length-percentage> = <length> | <percentage> <angular-color-stop> = <color> <color-stop-angle>? <angular-color-hint> = <angle-percentage> | <zero> <alpha-value> = <number> | <percentage> <hue> = <number> | <angle> <colorspace-params> = [<custom-params> | <predefined-rgb-params> | <xyz-params>] <color-stop-length> = <length-percentage>{1,2} <color-stop-angle> = [ <angle-percentage> | <zero> ]{1,2} <angle-percentage> = <angle> | <percentage> <custom-params> = <dashed-ident> [ <number> | <percentage> | none ]+ <predefined-rgb-params> = <predefined-rgb> [ <number> | <percentage> | none ]{3} <xyz-params> = <xyz> [ <number> | <percentage> | none ]{3} <predefined-rgb> = srgb | srgb-linear | display-p3 | display-p3-linear | a98-rgb | prophoto-rgb | rec2020 <xyz> = xyz | xyz-d50 | xyz-d65
Примеры
Наложение фоновых изображений
Обратите внимание, что изображение звезды частично прозрачно и расположено поверх изображения кота.
HTML
<div> <p class="cats-and-stars">This paragraph is full of cats<br />and stars.</p> <p>This paragraph is not.</p> <p class="cats-and-stars">Here are more cats for you.<br />Look at them!</p> <p>And no more.</p> </div>
CSS
p {
font-weight: bold;
font-size: 1.5em;
color: white;
text-shadow: 0.07em 0.07em 0.05em black;
background-image: none;
background-color: transparent;
}
div {
background-image: url("mdn_logo_only_color.png");
}
.cats-and-stars {
background-image: url("star-transparent.gif"), url("cat-front.png");
background-color: transparent;
}
Результат
Спецификации
Совместимость с браузерами
| Компьютеры | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome для Android | Firefox для Android | Opera для Android | Safari на iOS | Samsung Internet | WebView для Android | WebView на iOS | |
background-image |
1 |
12 |
1Если вabout:config задано пользовательское предпочтение browser.display.use_document_colors со значением false, фоновые изображения не отображаются. |
3.5 |
1 |
18 |
4Если вabout:config задано пользовательское предпочтение browser.display.use_document_colors со значением false, фоновые изображения не отображаются. |
14 |
1 |
1.0 |
4.4 |
1 |
element |
Нет |
Нет |
4 |
Нет |
Нет |
Нет |
4 |
Нет |
Нет |
Нет |
Нет |
Нет |
gradients |
1Некоторые версии поддерживают только экспериментальные градиенты с префиксом-webkit. |
12 |
3.6Некоторые версии поддерживают только экспериментальные градиенты с префиксом-moz. |
11Некоторые версии поддерживают только экспериментальные градиенты с префиксом-o. |
4Некоторые версии поддерживают только экспериментальные градиенты с префиксом-webkit. |
18Некоторые версии поддерживают только экспериментальные градиенты с префиксом-webkit. |
4Некоторые версии поддерживают только экспериментальные градиенты с префиксом-moz. |
14Некоторые версии поддерживают только экспериментальные градиенты с префиксом-webkit. |
3.2Некоторые версии поддерживают только экспериментальные градиенты с префиксом-webkit. |
1.0Некоторые версии поддерживают только экспериментальные градиенты с префиксом-webkit. |
4.4Некоторые версии поддерживают только экспериментальные градиенты с префиксом-webkit. |
3.2Некоторые версии поддерживают только экспериментальные градиенты с префиксом-webkit. |
image-rect |
Нет |
Нет |
4–120 |
Нет |
Нет |
Нет |
4–120 |
Нет |
Нет |
Нет |
Нет |
Нет |
image-set |
113
113
20–113Поддерживаются только изображенияurl, а x — единственная поддерживаемая единица разрешения. |
113
113
79–113Поддерживаются только изображенияurl, а x — единственная поддерживаемая единица разрешения. |
89
90
88–89Функцияtype() не поддерживается в качестве аргумента image-set(). |
99
99
15–99Поддерживаются только изображенияurl, а x — единственная поддерживаемая единица разрешения. |
17
17
14–17Функцияtype() не поддерживается в качестве аргумента image-set().14–17Функцияtype() не поддерживается в качестве аргумента image-set().10.1–14Поддерживаются только изображенияurl, а x — единственная поддерживаемая единица разрешения.6–14Поддерживаются только изображенияurl, а x — единственная поддерживаемая единица разрешения. |
113
113
25–113Поддерживаются только изображенияurl, а x — единственная поддерживаемая единица разрешения. |
89
90
88–89Функцияtype() не поддерживается в качестве аргумента image-set(). |
76
76
14–76Поддерживаются только изображенияurl, а x — единственная поддерживаемая единица разрешения. |
17
17
14–17Функцияtype() не поддерживается в качестве аргумента image-set().14–17Функцияtype() не поддерживается в качестве аргумента image-set().10.3–14Поддерживаются только изображенияurl, а x — единственная поддерживаемая единица разрешения.6–14Поддерживаются только изображенияurl, а x — единственная поддерживаемая единица разрешения. |
23.0
23.0
1.5–23.0Поддерживаются только изображенияurl, а x — единственная поддерживаемая единица разрешения. |
113
113
4.4–113Поддерживаются только изображенияurl, а x — единственная поддерживаемая единица разрешения. |
17
17
14–17Функцияtype() не поддерживается в качестве аргумента image-set().14–17Функцияtype() не поддерживается в качестве аргумента image-set().10.3–14Поддерживаются только изображенияurl, а x — единственная поддерживаемая единица разрешения.6–14Поддерживаются только изображенияurl, а x — единственная поддерживаемая единица разрешения. |
multiple_backgrounds |
1 |
12 |
3.6 |
10.5 |
1.3 |
18 |
4 |
14 |
1 |
1.0 |
4.4 |
1 |
none |
1 |
12 |
1 |
15 |
1 |
18 |
4 |
14 |
1 |
1.0 |
4.4 |
1 |
svg_images |
8 |
12 |
4 |
9.5 |
5Поддержка SVG в фоновом изображении CSS реализована не полностью. |
18 |
4 |
14 |
5Поддержка SVG в фоновом изображении CSS реализована не полностью. |
1.0 |
4.4 |
5Поддержка SVG в фоновом изображении CSS реализована не полностью. |
См. также
<img>- Функции, связанные с изображениями:
- Использование градиентов CSS
- Создание спрайтов изображений в CSS
-
Модуль изображений CSS
- Свойства, связанные с фоном
- Изучите: фон и границы
- Использование нескольких фоновых изображений
- Изменение размера фоновых изображений
- Модуль фонов и границ CSS
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/background-image