Тип 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