Spec-Zone.ru › CSS

Свойство 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;
}

Результат

Спецификации

Спецификация
Модуль фонов и рамок CSS, уровень 3
# background-image

Совместимость с браузерами

Компьютеры Мобильные устройства
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>
  • Функции, связанные с изображениями:
    • linear-gradient()
    • radial-gradient()
    • conic-gradient()
    • repeating-linear-gradient()
    • repeating-radial-gradient()
    • repeating-conic-gradient()
    • <url>
  • Использование градиентов CSS
  • Создание спрайтов изображений в CSS
  • Модуль изображений CSS

  • Свойства, связанные с фоном
    • background-attachment
    • background-clip
    • background-color
    • background-origin
    • background-position
    • background-repeat
    • background-size
    • background — сокращённое свойство
  • Изучите: фон и границы
  • Использование нескольких фоновых изображений
  • Изменение размера фоновых изображений
  • Модуль фонов и границ 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API