repeating-radial-gradient()
Базовая поддержка Широко распространено
Эта функция хорошо установлена и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.
Функция repeating-radial-gradient() CSS функция создаёт изображение, состоящее из повторяющихся градиентов, исходящих из начала координат. Она похожа на radial-gradient() и принимает те же аргументы, но повторяет цветовые остановки бесконечно во всех направлениях, чтобы заполнить весь контейнер, подобно repeating-linear-gradient(). Результатом функции является объект типа <gradient>, который представляет собой особый вид <image>.
Попробуйте
При каждом повторении положения цветовых остановок смещаются на кратное размерам основного радиального градиента (расстоянию между последней и первой цветовыми остановками). Таким образом, положение каждой конечной цветовой остановки совпадает с начальной; если цветовые значения отличаются, это приведёт к резкому визуальному переходу, который можно смягчить, повторив первое значение цвета как последнее.
Как и любой градиент, повторяющийся радиальный градиент имеет нет внутренних размеров; то есть, у него нет естественного или предпочтительного размера, ни пропорции. Его конкретный размер будет соответствовать размеру элемента, к которому он применяется.
Поскольку <gradient> относятся к типу данных <image>, они могут использоваться только там, где могут использоваться <image>. По этой причине repeating-radial-gradient() не будет работать с background-color и другими свойствами, использующими тип данных <color>.
Синтаксис
/* A gradient at the center of its container, starting red, changing to blue, and finishing green, with the colors repeating every 30px */ repeating-radial-gradient(circle at center, red 0, blue, green 30px) /* An elliptical gradient near the top left of its container, starting red, changing to green and back again, repeating five times between the center and the bottom right corner, and only once between the center and the top left corner */ repeating-radial-gradient(farthest-corner at 20% 20%, red 0, green, red 20%)
Значения
<position>-
Положение градиента, интерпретируемое так же, как
background-positionилиtransform-origin. Если не указано, по умолчаниюcenter. <shape>-
Форма градиента. Значение может быть
circle(что означает, что форма градиента — круг с постоянным радиусом) илиellipse(что означает, что форма — эллипс, выровненный по осям). Если не указано, по умолчаниюellipse. <extent-keyword>-
Ключевое слово, описывающее, насколько большой должна быть конечная форма. Возможные значения:
Ключевое слово Описание closest-sideКонечная форма градиента встречается с стороной ячейки, ближайшей к центру (для кругов) или встречается с обеими ближайшими к центру вертикальной и горизонтальной сторонами (для эллипсов). closest-cornerКонечная форма градиента имеет размер, достаточный для того, чтобы она точно встретила ближайший угол ячейки от центра. farthest-sideАналогично closest-side, за исключением того, что конечная форма имеет размер, достаточный для встречи с наиболее удалённой от центра стороной ячейки (или вертикальной и горизонтальной сторонами).farthest-cornerКонечная форма градиента имеет размер, достаточный для того, чтобы она точно встретила наиболее удалённый угол ячейки от центра. Примечание: Ранние реализации этой функции включали другие ключевые слова (
coverиcontain) как синонимы стандартныхfarthest-cornerиclosest-side, соответственно. Используйте только стандартные ключевые слова, так как некоторые реализации уже отказались от этих устаревших вариантов. <color-stop>-
Значение
<color>цветовой остановки, за которым следует необязательное положение остановки (либо<percentage>, либо<length>вдоль оси градиента). Процент от0%, или длина0, представляет центр градиента; значение100%представляет пересечение конечной формы с виртуальным лучом градиента. Процентные значения между ними линейно расположены на виртуальном луче градиента.
Формальный синтаксис
<repeating-radial-gradient()> =
repeating-radial-gradient( [ <radial-gradient-syntax> ] )
<radial-gradient-syntax> =
[ <radial-shape> || <radial-size> ]? [ at <position> ]? , <color-stop-list>
<radial-shape> =
circle |
ellipse
<radial-size> =
<radial-extent> |
<length [0,∞]> |
<length-percentage [0,∞]>{2}
<position> =
[ left | center | right | top | bottom | <length-percentage> ] |
[ left | center | right ] && [ top | center | bottom ] |
[ left | center | right | <length-percentage> ] [ top | center | bottom | <length-percentage> ] |
[ [ left | right ] <length-percentage> ] && [ [ top | bottom ] <length-percentage> ]
<color-stop-list> =
<linear-color-stop> , [ <linear-color-hint>? , <linear-color-stop> ]#?
<radial-extent> =
closest-corner |
closest-side |
farthest-corner |
farthest-side
<length-percentage> =
<length> |
<percentage>
<linear-color-stop> =
<color> <length-percentage>?
<linear-color-hint> =
<length-percentage>
Примеры
Чёрно-белый градиент
.radial-gradient {
background: repeating-radial-gradient(
black,
black 5px,
white 5px,
white 10px
);
}
Удалённый угол
.radial-gradient {
background: repeating-radial-gradient(
ellipse farthest-corner at 20% 20%,
red,
black 5%,
blue 5%,
green 10%
);
background: repeating-radial-gradient(
ellipse farthest-corner at 20% 20%,
red 0 5%,
green 5% 10%
);
}
Эллиптический градиент будет расположен в 20% от левого верхнего угла и будет повторяться 10 раз между центром и самым удалённым углом (правым нижним углом). Браузеры, поддерживающие многопозиционные цветовые остановки, отобразят красную и зеленую полосатую эллипс. Браузеры, не поддерживающие синтаксис, увидят градиент, который переходит от красного к чёрному, а затем от синего к зелёному.
Интерполяция с цветовым тоном
В этом примере для интерполяции используется цветовая система hsl, и интерполируется цветовой тон.
.shorter {
background-image: repeating-radial-gradient(
circle at center in hsl shorter hue,
red 30px,
blue 60px
);
}
.longer {
background-image: repeating-radial-gradient(
circle at center in hsl longer hue,
red 30px,
blue 60px
);
}
Левая область использует кратчайшую интерполяцию, что означает, что цвет переходит от красного к синему, используя меньшую дугу на цветовом круге. Правая область использует длинную интерполяцию, что означает, что цвет переходит от красного к синему, проходя через зелёный, жёлтый и оранжевый цвета.
Примечание: См. Использование CSS-градиентов для получения дополнительных примеров.
Спецификации
| Спецификация |
|---|
| CSS Images Module Level 3 # повторяющиеся-градиенты |
Совместимость браузеров
| Рабочий стол | Мобильное устройство | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
repeating-radial-gradient |
2610 | 12 |
16Перед Firefox 36 градиенты не применялись к пространству предварительно умноженных цветов, что приводило к неожиданному появлению оттенков серого при использовании прозрачности.3.6С Firefox 42, префиксную версию градиентов можно отключить, установивlayout.css.prefixes.gradients в false. |
12.11512–15 | 75.1Safari 4 поддерживал экспериментальную-webkit-gradient(radial,…) функцию. Этот устаревший синтаксис всё ещё поддерживается для совместимости. |
2618 |
16Перед Firefox 36 градиенты не применялись к пространству предварительно умноженных цветов, что приводило к неожиданному появлению оттенков серого при использовании прозрачности.10С Firefox 42, префиксную версию градиентов можно отключить, установивlayout.css.prefixes.gradients в false. |
12.11412–14 | 75Safari 4 поддерживал экспериментальную-webkit-gradient(radial,…) функцию. Этот устаревший синтаксис всё ещё поддерживается для совместимости. |
1.51.0 | 4.4≤37 |
at |
26 | 12 |
16Перед Firefox 36 градиенты не применялись к пространству предварительно умноженных цветов, что приводило к неожиданному появлению оттенков серого при использовании прозрачности.10С Firefox 42, префиксную версию градиентов можно отключить, установивlayout.css.prefixes.gradients в false. |
1512–15 | 7 | 26 |
16Перед Firefox 36 градиенты не применялись к пространству предварительно умноженных цветов, что приводило к неожиданному появлению оттенков серого при использовании прозрачности.10С Firefox 42, префиксную версию градиентов можно отключить, установивlayout.css.prefixes.gradients в false. |
1412–14 | 7 | 1.5 | 4.4 |
doubleposition |
71 | 79 | 64 | 58 | 12.1 | 71 | 64 | 50 | 12.2 | 10.0 | 71 |
hue_interpolation_method |
111 | 111 | 127121 | 97 | 16.2 | 111 | 127 | 75 | 16.2 | 22.0 | 111 |
interpolation_color_space |
111 | 111 | 127121 | 97 | 16.2 | 111 | 127 | 75 | 16.2 | 22.0 | 111 |
interpolation_hints |
40 | 79 | 36 | 27 | 7 | 40 | 46 | 27 | 7 | 4.0 | 40 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/gradient/repeating-radial-gradient