repeating-radial-gradient()
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.
* Some parts of this feature may have varying levels of support.
Die repeating-radial-gradient() CSS Funktion erzeugt ein Bild, das aus sich wiederholenden Verläufen besteht, die von einem Ursprung aus strahlen. Sie ist ähnlich wie radial-gradient() und nimmt die gleichen Argumente an, aber sie wiederholt die Farbstopps unendlich in alle Richtungen, um ihren gesamten Container zu bedecken, ähnlich wie repeating-linear-gradient(). Das Ergebnis der Funktion ist ein Objekt des Datentyps <gradient>, der eine spezielle Art von <image> ist.
Probieren Sie es aus
background: repeating-radial-gradient(#e66465, #9198e5 20%);
background: repeating-radial-gradient(closest-side, #3f87a6, #ebf8e1, #f69d3c);
background: repeating-radial-gradient(
circle at 100%,
#333333,
#333333 10px,
#eeeeee 10px,
#eeeeee 20px
);
<section class="display-block" id="default-example">
<div id="example-element"></div>
</section>
#example-element {
min-height: 100%;
}
Bei jeder Wiederholung werden die Positionen der Farbstopps um ein Vielfaches der Dimensionen des grundlegenden radialen Gradienten verschoben (der Abstand zwischen dem letzten und dem ersten Farbstopp). Dadurch fällt die Position jedes endenden Farbstopps mit einem startenden Farbstopp zusammen; wenn die Farbwerte unterschiedlich sind, resultiert dies in einem scharfen visuellen Übergang, der durch Wiederholung der ersten Farbe als letzte Farbe gemindert werden kann.
Wie jeder Gradient hat auch ein sich wiederholender radialer Gradient keine intrinsischen Dimensionen, d.h. er hat keine natürliche oder bevorzugte Größe und auch kein bevorzugtes Verhältnis. Seine konkrete Größe entspricht der Größe des Elements, auf das er angewendet wird.
Da <gradient>s zum <image> Datentyp gehören, können sie nur dort verwendet werden, wo <image>s verwendet werden können. Aus diesem Grund funktioniert repeating-radial-gradient() nicht auf background-color und anderen Eigenschaften, die den Datentyp <color> verwenden.
Syntax
/* 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%)
Werte
<position>-
Die Position des Gradienten, interpretiert auf die gleiche Weise wie
background-positionodertransform-origin. Falls nicht angegeben, ist der Standardcenter. <shape>-
Die Form des Gradienten. Der Wert kann
circlesein (was bedeutet, dass die Form des Gradienten ein Kreis mit konstantem Radius ist), oderellipse(was bedeutet, dass die Form eine achsenausgerichtete Ellipse ist). Falls nicht angegeben, ist der Standardellipse. <extent-keyword>-
Ein Schlüsselwort, das beschreibt, wie groß die endende Form sein muss. Die möglichen Werte sind:
Schlüsselwort Beschreibung closest-sideDie endende Form des Gradienten trifft auf die Seite der Box, die ihrem Zentrum am nächsten liegt (für Kreise), oder trifft sowohl auf die vertikalen als auch auf die horizontalen Seiten, die dem Zentrum am nächsten liegen (für Ellipsen). closest-cornerDie endende Form des Gradienten ist so dimensioniert, dass sie genau die Ecke der Box erreicht, die ihrem Zentrum am nächsten liegt. farthest-sideÄhnlich wie closest-side, außer dass die endende Form so dimensioniert ist, dass sie die Seite der Box trifft, die ihrem Zentrum am weitesten entfernt ist (oder die vertikalen und horizontalen Seiten).farthest-cornerDie endende Form des Gradienten ist so dimensioniert, dass sie genau die Ecke der Box erreicht, die ihrem Zentrum am weitesten entfernt ist. Hinweis: Frühere Implementierungen dieser Funktion enthielten andere Schlüsselwörter (
coverundcontain) als Synonyme für die standardmäßigenfarthest-cornerundclosest-side. Verwenden Sie nur die standardmäßigen Schlüsselwörter, da einige Implementierungen diese älteren Varianten bereits entfernt haben. <color-stop>-
Ein
<color>Wert eines Farbstopps, gefolgt von einer optionalen Stopp-Position (entweder ein<percentage>oder ein<length>entlang der Achse des Gradienten). Ein Prozentwert von0%, oder eine Länge von0, repräsentiert das Zentrum des Gradienten; der Wert100%repräsentiert die Schnittstelle der endenden Form mit dem virtuellen Gradientenstrahl. Prozentwerte dazwischen sind linear auf dem virtuellen Gradientenstrahl positioniert.
Formale Syntax
<repeating-radial-gradient()> =
repeating-radial-gradient( [ <radial-gradient-syntax> ] )
<radial-gradient-syntax> =
[ [ [ <radial-shape> || <radial-size> ]? [ at <position> ]? ] || <color-interpolation-method> ]? , <color-stop-list>
<radial-shape> =
circle |
ellipse
<radial-size> =
<radial-extent> |
<length [0,∞]> |
<length-percentage [0,∞]>{2}
<position> =
<position-one> |
<position-two> |
<position-four>
<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-extent> =
closest-corner |
closest-side |
farthest-corner |
farthest-side
<length-percentage> =
<length> |
<percentage>
<position-one> =
left |
center |
right |
top |
bottom |
x-start |
x-end |
y-start |
y-end |
block-start |
block-end |
inline-start |
inline-end |
<length-percentage>
<position-two> =
[ left | center | right | x-start | x-end ] && [ top | center | bottom | y-start | y-end ] |
[ left | center | right | x-start | x-end | <length-percentage> ] [ top | center | bottom | y-start | y-end | <length-percentage> ] |
[ block-start | center | block-end ] && [ inline-start | center | inline-end ] |
[ start | center | end ]{2}
<position-four> =
[ [ left | right | x-start | x-end ] <length-percentage> ] && [ [ top | bottom | y-start | y-end ] <length-percentage> ] |
[ [ block-start | block-end ] <length-percentage> ] && [ [ inline-start | inline-end ] <length-percentage> ] |
[ [ start | end ] <length-percentage> ]{2}
<rectangular-color-space> =
srgb |
srgb-linear |
display-p3 |
display-p3-linear |
a98-rgb |
prophoto-rgb |
rec2020 |
lab |
oklab |
<xyz-space>
<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>
<xyz-space> =
xyz |
xyz-d50 |
xyz-d65
<color-stop-length> =
<length-percentage>{1,2}
Beispiele
>Schwarz-weißer Gradient
.radial-gradient {
background: repeating-radial-gradient(
black,
black 5px,
white 5px,
white 10px
);
}
Farthest-corner
.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%
);
}
Der elliptische Gradient wird 20% von der oberen linken Ecke zentriert und wird sich 10 Mal zwischen dem Zentrum und der entferntesten Ecke (der unteren rechten Ecke) wiederholen. Browser, die mehrpositionale Farbstopps unterstützen, zeigen eine rot-grün gestreifte Ellipse an. Browser, die die Syntax noch nicht unterstützen, sehen einen Verlauf, der von Rot zu Schwarz und dann von Blau zu Grün geht.
Interpolation mit Farbton
In diesem Beispiel für Interpolation wird das hsl Farbsystem verwendet und der Farbton wird interpoliert.
.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
);
}
Das Kästchen links verwendet die kürzere Interpolation, was bedeutet, dass die Farbe vom Rot zum Blau über den kürzeren Bogen auf dem Farbkreis wechselt. Das Kästchen rechts verwendet die längere Interpolation, was bedeutet, dass die Farbe vom Rot zum Blau über den längeren Bogen wechselt und durch Grün, Gelb und Orange verläuft.
Hinweis: Bitte sehen Sie Verwendung von CSS-Verläufen für weitere Beispiele.
Spezifikationen
| Specification |
|---|
| CSS Images Module Level 3> # repeating-gradients> |