--- title: radial-gradient() slug: Web/CSS/radial-gradient() translation_of: Web/CSS/radial-gradient() ---
CSS функция radial-gradient() создает картинку состоящую из последовательных переходов между двумя и более цветами, которые исходят из заданного центра. Они могут принимать форму круга или эллипса. Результатом функции будет объект типа {{cssxref("<gradient>")}}, который является расширением типа {{cssxref("<image>")}}.
Как и любой градиент, радиальный градиент не имеет внутренних размеров, то есть заданных или предпочитаемых размеров, как и заданного коэффициента соотношения сторон. Его итоговый размер будет соответствовать размеру элемента к которому он применен.
Чтобы создать повторяющийся радиальный градиент, который будет заполнять контейнер, необходимо использовать функцию {{cssxref("repeating-radial-gradient")}}.
Поскольку <gradient>ы относятся к типу <image>, они могут быть использованы только там где используется тип <image>. По этой причине radial-gradient() не будет работать совместно с {{Cssxref("background-color")}} и другими свойствами, которые используют тип {{cssxref("<color>")}}.
Радиальный градиент задается позицией центра, конечной формой, и двумя или более точками изменения цвета.
Чтобы создать плавный градиент, функция radial-gradient() рисует серию концентрических форм исходящих из центра к краям формы градиента (и потенциально далее за его пределы). Конечная форма может быть как кругом так и эллипсом.
Точки изменения цвета расположены на виртуальном луче градиента, который расширяется горизонтально направо. Позиция точек заданных в процентах рассчитывается относительно пересечения конечной формы таким лучом, что является 100%. Цвет каждой такой формы задается цветом на пересечении луча градиента и этой формы.
/* Градиент в центре контейнера, переход от красного к синему и после к зеленому */ radial-gradient(circle at center, red 0, blue, green 100%)
center.<shape>circle (подразумевается что формой является круг с постоянным радиусом) или ellipse (форма является эллипсом, выровненным по оси). По умолчанию имеет значение ellipse.<extent-keyword>| Значение | Описание |
|---|---|
closest-side |
Конечная форма градиента соответствует стороне прямоугольника, ближайшей к его центру (для окружностей), или обеим вертикальным и горизонтальным сторонам, ближайшим к центру (для эллипсов). |
closest-corner |
Конечная форма градиента определяется таким образом, чтобы он точно соответствовал ближайшему углу окна от его центра. |
farthest-side |
Схоже с closest-side, кроме того что, размер формы определяется самой дальней стороной от своего центра (или вертикальных и горизонтальных сторон) |
farthest-corner |
Конечная форма градиента определяется таким образом, чтобы он точно соответствовал самому дальнему углу прямоугольника от его центра. |
Заметка: Ранние реализации этой функции включают в себя другие значения свойства (cover and contain) которые являются синонимами farthest-corner и closest-side, соответственно. Рекомендуется использовать только стандартные значения, так как некоторые реализации уже перестали использовать старые значения свойств.
<color-stop>0%, или 0 представляют центр градиента; значение 100% представляет собой виртуальное пересечение конечной формы с виртуальным лучом градиента. Процентные значения будут линейно расположены на луче градиента.radial-gradient(
[ [ circle || <length> ] [ at <position> ]? , |
[ ellipse || [ <length> | <percentage> ]{2} ] [ at <position> ]? , |
[ [ circle | ellipse ] || <extent-keyword> ] [ at <position> ]? , |
at <position> ,
]?
<color-stop> [ , <color-stop> ]+
)
где <extent-keyword> = closest-corner | closest-side | farthest-corner | farthest-side
и <color-stop> = <color> [ <percentage> | <length> ]?
<div class="radial-gradient"></div>
.radial-gradient {
width: 240px;
height: 120px;
}
.radial-gradient {
background-image: radial-gradient(cyan 0%, transparent 20%, salmon 40%);
}
{{EmbedLiveSample('Простой_градиент', 120, 120)}}
<div class="radial-gradient"></div>
.radial-gradient {
width: 240px;
height: 120px;
}
.radial-gradient {
background-image: radial-gradient(farthest-corner at 40px 40px,
#f35 0%, #43e 100%);
}
{{EmbedLiveSample('Градиент_со_смещенным_центром', 240, 120)}}
Заметка: Дополнительные примеры можно найти в Использование CSS градиентов.
| Спецификация | Статус | Комментарии |
|---|---|---|
| {{SpecName('CSS3 Images', '#radial-gradients', 'radial-gradients()')}} | {{Spec2('CSS3 Images')}} | Initial definition. |
{{CompatibilityTable}}
| Свойство | Firefox (Gecko) | Chrome | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Стандартное использование (в {{cssxref("background")}} и {{cssxref("background-image")}}) | {{CompatGeckoDesktop("1.9.2")}}{{property_prefix("-moz")}}[1] {{CompatGeckoDesktop("16")}} |
10.0 (534.16){{property_prefix("-webkit")}}[2] | 10.0[3] | 11.60{{property_prefix("-o")}} | 5.1{{property_prefix("-webkit")}}[2] |
| Использование в {{cssxref("border-image")}} | {{CompatGeckoDesktop("29")}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
| Использование на любых других свойствах работающих с типом {{cssxref("<image>")}} | {{CompatNo}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
| Устаревший webkit синтаксис {{non-standard_inline}} | {{CompatNo}} | 3{{property_prefix("-webkit")}}[2] | {{CompatNo}} | {{CompatNo}} | 4.0{{property_prefix("-webkit")}}[2] |
at синтаксис (финальный стандартизованный вариант) |
{{CompatGeckoDesktop("10")}}{{property_prefix("-moz")}}[1] {{CompatGeckoDesktop("16")}}[4] |
26 | 10.0 | 11.60{{property_prefix("-o")}}[2] 2.12 |
{{CompatNo}} |
| Interpolation hints/gradient midpoints (точки заданные в процентах без значения цвета) | {{CompatGeckoDesktop("36")}} | 40 | 27 |
| Свойство | Android | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|
| Стандартное использование (в {{cssxref("background")}} и {{cssxref("background-image")}}) | {{CompatVersionUnknown}} | {{CompatGeckoMobile("1.9.2")}}{{property_prefix("-moz")}}[1] {{CompatGeckoMobile("16")}} |
10 | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
| Использование в {{cssxref("border-image")}} | {{CompatVersionUnknown}} | {{CompatGeckoMobile("29")}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
| Использование на любых других свойствах работающих с типом {{cssxref("<image>")}} | {{CompatNo}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
| Устаревший webkit синтаксис {{non-standard_inline}} | {{CompatUnknown}} | {{CompatNo}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
at синтаксис (финальный стандартизованный вариант) |
{{CompatUnknown}} | {{CompatGeckoMobile("10")}}{{property_prefix("-moz")}}[1] {{CompatGeckoMobile("16")}} |
10 | {{CompatUnknown}} | {{CompatUnknown}} |
[1] Firefox 3.6 синтаксис - ранний реализованный вариант с префиксом. До Firefox 36, Gecko не применял градиенты на расширенное цветовое пространство, так как это приводило к неожиданному появлению серого оттенка при использовании прозрачности. Начиная с Firefox 42, версии градиентов с префиксом могут быть отключены установкой layout.css.prefixes.gradients to false.
[2] Ранний синтаксис Webkit с префиксом. WebKit с версии 528 поддерживает устаревший вариант -webkit-gradient(radial,…). Смотрите также текущую поддержку радиальных градиентов.
[3] Internet Explorer от 5.5 до 9.0 поддерживают собственный фильтр filter: progid:DXImageTransform.Microsoft.Gradient().
[4] В дополнении к поддержке без префикса, Gecko 44.0 {{geckoRelease("44.0")}} добавил поддержку версии с префиксом -webkit по соображениям обратной совместимости с настройкой layout.css.prefixes.webkit, установленной по умолчанию как false. Начиная с Gecko 49.0 {{geckoRelease("49.0")}} используется установка по умолчанию как true.
radial-gradient(circle gold,red) будут работать, даже несмотря на то, что пропущена запятая между circle и gold ({{bug(1383323)}}). Новый parallel CSS движок от Firefox (также известный как Quantum CSS или Stylo, планируемый к релизу в Firefox 57) исправляет этот баг.