Spec-Zone.ru › CSS

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 градиенты не применялись к пространству предварительно умноженных цветов, что приводило к неожиданному появлению оттенков серого при использовании прозрачности.
49
3.6С Firefox 42, префиксную версию градиентов можно отключить, установив layout.css.prefixes.gradients в false.
12.11512–15 7
5.1Safari 4 поддерживал экспериментальную -webkit-gradient(radial,…) функцию. Этот устаревший синтаксис всё ещё поддерживается для совместимости.
2618
16Перед Firefox 36 градиенты не применялись к пространству предварительно умноженных цветов, что приводило к неожиданному появлению оттенков серого при использовании прозрачности.
49
10С Firefox 42, префиксную версию градиентов можно отключить, установив layout.css.prefixes.gradients в false.
12.11412–14 7
5Safari 4 поддерживал экспериментальную -webkit-gradient(radial,…) функцию. Этот устаревший синтаксис всё ещё поддерживается для совместимости.
1.51.0 4.4≤37
at 26 12
16Перед Firefox 36 градиенты не применялись к пространству предварительно умноженных цветов, что приводило к неожиданному появлению оттенков серого при использовании прозрачности.
49
10С Firefox 42, префиксную версию градиентов можно отключить, установив layout.css.prefixes.gradients в false.
1512–15 7 26
16Перед Firefox 36 градиенты не применялись к пространству предварительно умноженных цветов, что приводило к неожиданному появлению оттенков серого при использовании прозрачности.
49
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

См. также

  • Использование CSS градиентов
  • Другие функции градиентов: radial-gradient(), linear-gradient(), repeating-linear-gradient(), conic-gradient(), repeating-conic-gradient()
  • <hue-interpolation-method>
  • <color-interpolation-method>
  • <image>
  • image()
  • element()
  • image-set()
  • cross-fade()

© 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

Spec-Zone.ru

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