Spec-Zone.ru › CSS

Тип CSS `<gradient>`

Базовая поддержка Широко доступно

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в разных версиях браузеров. Она поддерживается браузерами с июля 2015 года.

<gradient> — это CSS тип данных, представляющий собой особый тип <image>, состоящий из плавного перехода между двумя или более цветами.

У градиента CSS нет собственных размеров; то есть у него нет естественного или предпочтительного размера и соотношения сторон. Его фактический размер будет соответствовать размеру элемента, к которому он применяется.

Попробуйте

background: linear-gradient(#f69d3c, #3f87a6);
background: radial-gradient(#f69d3c, #3f87a6);
background: repeating-linear-gradient(#f69d3c, #3f87a6 50px);
background: repeating-radial-gradient(#f69d3c, #3f87a6 50px);
background: conic-gradient(#f69d3c, #3f87a6);
<section class="display-block" id="default-example">
  <div id="example-element"></div>
</section>
#example-element {
  min-height: 100%;
}

Синтаксис

Тип данных <gradient> определяется одной из перечисленных ниже разновидностей функций.

Линейный градиент

В линейных градиентах цвета плавно переходят друг в друга вдоль воображаемой линии. Они создаются с помощью функции linear-gradient().

Радиальный градиент

В радиальных градиентах цвета плавно переходят друг в друга, расходясь из центральной точки (начала координат). Они создаются с помощью функции radial-gradient().

Конический градиент

В конических градиентах цвета плавно переходят друг в друга по кругу. Они создаются с помощью функции conic-gradient().

Повторяющийся градиент

Повторяющиеся градиенты дублируются столько раз, сколько необходимо для заполнения заданной области. Они создаются с помощью функций repeating-linear-gradient(), repeating-radial-gradient() и repeating-conic-gradient().

Интерполяция

Как и при любой интерполяции цветов, градиенты вычисляются в цветовом пространстве с предварительно умноженным альфа-каналом. Это предотвращает появление неожиданных оттенков серого при одновременном изменении цвета и прозрачности. (Обратите внимание: старые браузеры могут не использовать такое поведение при применении ключевого слова transparent.)

Формальный синтаксис

<gradient> = 
  <linear-gradient()> |
  <repeating-linear-gradient()> |
  <radial-gradient()> |
  <repeating-radial-gradient()> |
  <conic-gradient()> |
  <repeating-conic-gradient()>

<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> ] )

<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>

<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> ]#?

<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>

<color> = 
  <color-base> |
  currentColor |
  <system-color> |
  <light-dark()> |
  <deprecated-system-color>

<color-stop-length> = 
  <length-percentage>{1,2}

<color-stop-angle> = 
  [ <angle-percentage> | <zero> ]{1,2}

<angle-percentage> = 
  <angle> |
  <percentage>

<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

<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})

<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 ] ]? )

<alpha-value> = 
  <number> |
  <percentage>

<hue> = 
  <number> |
  <angle>

<colorspace-params> = 
  [<custom-params> | <predefined-rgb-params> | <xyz-params>]

<custom-params> = 
  <dashed-ident> [ <number> | <percentage> | none ]+

<predefined-rgb-params> = 
  <predefined-rgb> [ <number> | <percentage> | none ]{3}

<xyz-params> = 
  <xyz> [ <number> | <percentage> | none ]{3}

Примеры

Пример линейного градиента

Линейный градиент.

<div class="linear-gradient">Linear gradient</div>
div {
  width: 240px;
  height: 80px;
}
.linear-gradient {
  background: linear-gradient(
    to right,
    red,
    orange,
    yellow,
    green,
    blue,
    indigo,
    violet
  );
}

Пример радиального градиента

Радиальный градиент.

<div class="radial-gradient">Radial gradient</div>
div {
  width: 240px;
  height: 80px;
}
.radial-gradient {
  background: radial-gradient(red, yellow, dodgerblue);
}

Пример конического градиента

Пример конического градиента.

<div class="conic-gradient">Conic gradient</div>
div {
  width: 200px;
  height: 200px;
}
.conic-gradient {
  background: conic-gradient(pink, coral, lime);
}

Примеры повторяющихся градиентов

Примеры повторяющихся линейного и радиального градиентов.

<div class="linear-repeat"></div>
<span>Repeating linear gradient</span>
<hr />
<div class="radial-repeat"></div>
<span>Repeating radial gradient</span>
<hr />
<div class="conic-repeat"></div>
<span>Repeating conic gradient</span>
div {
  display: inline-block;
  width: 240px;
  height: 80px;
}

span {
  font-weight: bold;
  vertical-align: top;
}
.linear-repeat {
  background: repeating-linear-gradient(
    to top left,
    pink,
    pink 5px,
    white 5px,
    white 10px
  );
}

.radial-repeat {
  background: repeating-radial-gradient(
    lime,
    lime 15px,
    white 15px,
    white 30px
  );
}

.conic-repeat {
  background: repeating-conic-gradient(lime, pink 30deg);
}

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

Спецификация
Модуль CSS Images, уровень 4
# gradients

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

Настольные компьютеры Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome для Android Firefox для Android Opera для Android Safari для iOS Samsung Internet WebView для Android WebView для iOS
gradient
26
10
12
3.6
12.1
15
11–15
7
5.1
26
18
4
12.1
14
11–14
7
5
1.5
1.0
4.4
4.4
7
5
conic-gradient
69
79
83
56
12.1
69
83
48
12.2
10.0
69
12.2
linear-gradient
26
10
12
16
49
3.6Начиная с Firefox 42, версию градиентов с префиксом можно отключить, установив layout.css.prefixes.gradients в значение false.
Считает, что <angle> начинается справа, а не сверху. То есть угол 0deg рассматривается как указатель направления вправо.
12.1
15Считает, что <angle> начинается справа, а не сверху. То есть угол 0deg рассматривается как указатель направления вправо.
11–15Считает, что <angle> начинается справа, а не сверху. То есть угол 0deg рассматривается как указатель направления вправо.
7
5.1Safari 4 поддерживал экспериментальную функцию -webkit-gradient(linear,…). Она имеет более ограниченные возможности, чем появившаяся позднее стандартная версия: нельзя указать одновременно положение и угол, как в linear-gradient(). Этот старый устаревший синтаксис по-прежнему поддерживается для обеспечения совместимости.
Считает, что <angle> начинается справа, а не сверху. То есть угол 0deg рассматривается как указатель направления вправо.
26
18
16
49
4Начиная с Firefox для Android 42, версию градиентов с префиксом можно отключить, установив layout.css.prefixes.gradients в значение false.
Считает, что <angle> начинается справа, а не сверху. То есть угол 0deg рассматривается как указатель направления вправо.
12.1
14Считает, что <angle> начинается справа, а не сверху. То есть угол 0deg рассматривается как указатель направления вправо.
11–14Считает, что <angle> начинается справа, а не сверху. То есть угол 0deg рассматривается как указатель направления вправо.
7
5Safari для iOS 3.2 поддерживал экспериментальную функцию -webkit-gradient(linear,…). Она имеет более ограниченные возможности, чем появившаяся позднее стандартная версия: нельзя указать одновременно положение и угол, как в linear-gradient(). Этот старый устаревший синтаксис по-прежнему поддерживается для обеспечения совместимости.
Считает, что <angle> начинается справа, а не сверху. То есть угол 0deg рассматривается как указатель направления вправо.
1.5
1.0
4.4
4.4
7
5WebView для iOS 3.2 поддерживал экспериментальную функцию -webkit-gradient(linear,…). Она имеет более ограниченные возможности, чем появившаяся позднее стандартная версия: нельзя указать одновременно положение и угол, как в linear-gradient(). Этот старый устаревший синтаксис по-прежнему поддерживается для обеспечения совместимости.
Считает, что <angle> начинается справа, а не сверху. То есть угол 0deg рассматривается как указатель направления вправо.
radial-gradient
26
13
12
16
49
3.6Начиная с Firefox 42, версию градиентов с префиксом можно отключить, установив layout.css.prefixes.gradients в значение false.
12.1
15
11.6–15
7
5.1Safari 4 поддерживал экспериментальную функцию -webkit-gradient(radial,…). Этот старый устаревший синтаксис по-прежнему поддерживается для обеспечения совместимости.
26
18
16
49
4Начиная с Firefox для Android 42, версию градиентов с префиксом можно отключить, установив layout.css.prefixes.gradients в значение false.
12.1
14
12–14
7
5Safari для iOS 3.2 поддерживал экспериментальную функцию -webkit-gradient(radial,…). Этот старый устаревший синтаксис по-прежнему поддерживается для обеспечения совместимости.
1.5
1.0
4.4
4.4
7
5WebView для iOS 3.2 поддерживал экспериментальную функцию -webkit-gradient(radial,…). Этот старый устаревший синтаксис по-прежнему поддерживается для обеспечения совместимости.
repeating-conic-gradient
69
79
83
56
12.1
69
83
48
12.2
10.0
69
12.2
repeating-linear-gradient
26
10
12
16До Firefox 36 градиенты не применялись в цветовом пространстве с предварительно умноженным альфа-каналом, из-за чего при использовании прозрачности неожиданно появлялись оттенки серого.
49
3.6Начиная с Firefox 42, версию градиентов с префиксом можно отключить, установив layout.css.prefixes.gradients в значение false.
Считает, что <angle> начинается справа, а не сверху. То есть угол 0deg рассматривается как указатель направления вправо.
12.1
15Считает, что <angle> начинается справа, а не сверху. То есть угол 0deg рассматривается как указатель направления вправо.
11–15Считает, что <angle> начинается справа, а не сверху. То есть угол 0deg рассматривается как указатель направления вправо.
7
5.1Safari 4 поддерживал экспериментальную функцию -webkit-gradient(linear,…). Она имеет более ограниченные возможности, чем появившаяся позднее стандартная версия: нельзя указать одновременно положение и угол, как в repeating-linear-gradient(). Этот старый устаревший синтаксис по-прежнему поддерживается для обеспечения совместимости.
Считает, что <angle> начинается справа, а не сверху. То есть угол 0deg рассматривается как указатель направления вправо.
26
18
16До Firefox для Android 36 градиенты не применялись в цветовом пространстве с предварительно умноженным альфа-каналом, из-за чего при использовании прозрачности неожиданно появлялись оттенки серого.
49
4Начиная с Firefox для Android 42, версию градиентов с префиксом можно отключить, установив layout.css.prefixes.gradients в значение false.
Считает, что <angle> начинается справа, а не сверху. То есть угол 0deg рассматривается как указатель направления вправо.
12.1
14Считает, что <angle> начинается справа, а не сверху. То есть угол 0deg рассматривается как указатель направления вправо.
11–14Считает, что <angle> начинается справа, а не сверху. То есть угол 0deg рассматривается как указатель направления вправо.
7
5Safari для iOS 3.2 поддерживал экспериментальную функцию -webkit-gradient(linear,…). Она имеет более ограниченные возможности, чем появившаяся позднее стандартная версия: нельзя указать одновременно положение и угол, как в repeating-linear-gradient(). Этот старый устаревший синтаксис по-прежнему поддерживается для обеспечения совместимости.
Считает, что <angle> начинается справа, а не сверху. То есть угол 0deg рассматривается как указатель направления вправо.
1.5
1.0
4.4
4.4
7
5WebView для iOS 3.2 поддерживал экспериментальную функцию -webkit-gradient(linear,…). Она имеет более ограниченные возможности, чем появившаяся позднее стандартная версия: нельзя указать одновременно положение и угол, как в repeating-linear-gradient(). Этот старый устаревший синтаксис по-прежнему поддерживается для обеспечения совместимости.
Считает, что <angle> начинается справа, а не сверху. То есть угол 0deg рассматривается как указатель направления вправо.
repeating-radial-gradient
26
10
12
16До Firefox 36 градиенты не применялись в цветовом пространстве с предварительно умноженным альфа-каналом, из-за чего при использовании прозрачности неожиданно появлялись оттенки серого.
49
3.6Начиная с Firefox 42, версию градиентов с префиксом можно отключить, установив layout.css.prefixes.gradients в значение false.
12.1
15
12–15
7
5.1Safari 4 поддерживал экспериментальную функцию -webkit-gradient(radial,…). Этот старый устаревший синтаксис по-прежнему поддерживается для обеспечения совместимости.
26
18
16До Firefox 36 градиенты не применялись в цветовом пространстве с предварительно умноженным альфа-каналом, из-за чего при использовании прозрачности неожиданно появлялись оттенки серого.
49
10Начиная с Firefox 42, версию градиентов с префиксом можно отключить, установив layout.css.prefixes.gradients в значение false.
12.1
14
12–14
7
5Safari для iOS 3.2 поддерживал экспериментальную функцию -webkit-gradient(radial,…). Этот старый устаревший синтаксис по-прежнему поддерживается для обеспечения совместимости.
1.5
1.0
4.4
4.4
7
5WebView для iOS 3.2 поддерживал экспериментальную функцию -webkit-gradient(radial,…). Этот старый устаревший синтаксис по-прежнему поддерживается для обеспечения совместимости.

См. также

  • Использование градиентов CSS
  • Функции градиентов: linear-gradient(), repeating-linear-gradient(), radial-gradient(), repeating-radial-gradient(), conic-gradient(), repeating-conic-gradient()
  • Основные типы данных 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/Values/gradient

Spec-Zone.ru

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