repeating-linear-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-linear-gradient() CSS Funktion erzeugt ein Bild, das aus sich wiederholenden linearen Farbverläufen besteht. Sie ist ähnlich wie linear-gradient() und nimmt die gleichen Argumente, jedoch wiederholt sie die Farbstopps unendlich in alle Richtungen, um den gesamten Container zu bedecken. Das Ergebnis der Funktion ist ein Objekt des Datentyps <gradient>, der eine spezielle Art von <image> ist.
Probieren Sie es aus
background: repeating-linear-gradient(
#e66465,
#e66465 20px,
#9198e5 20px,
#9198e5 25px
);
background: repeating-linear-gradient(45deg, #3f87a6, #ebf8e1 15%, #f69d3c 20%);
background:
repeating-linear-gradient(transparent, #4d9f0c 40px),
repeating-linear-gradient(0.25turn, transparent, #3f87a6 20px);
<section class="display-block" id="default-example">
<div id="example-element"></div>
</section>
#example-element {
min-height: 100%;
}
Die Länge des sich wiederholenden Farbverlaufs ist der Abstand zwischen dem ersten und letzten Farbstopp. Wenn die erste Farbe keine Farbstopplänge hat, beträgt diese standardmäßig 0. Bei jeder Wiederholung werden die Positionen der Farbstopps um ein Vielfaches der Länge des grundsätzlichen linearen Farbverlaufs verschoben. Dadurch fällt die Position jedes endenden Farbstopps mit einem startenden Farbstopp zusammen; wenn die Farbwerte unterschiedlich sind, führt dies zu einem scharfen visuellen Übergang. Dies kann geändert werden, indem die erste Farbe erneut als letzte Farbe wiederholt wird.
Wie bei jedem Farbverlauf hat ein sich wiederholender linearer Farbverlauf keine intrinsischen Dimensionen; das heißt, er hat keine natürliche oder bevorzugte Größe und 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-linear-gradient() nicht mit background-color und anderen Eigenschaften, die den Datentyp <color> verwenden.
Syntax
/* A repeating gradient tilted 45 degrees,
starting blue and finishing red, repeating 3 times */
repeating-linear-gradient(45deg, blue, red 33.3%)
/* A repeating gradient going from the bottom right to the top left,
starting blue and finishing red, repeating every 20px */
repeating-linear-gradient(to left top, blue, red 20px)
/* A gradient going from the bottom to top,
starting blue, turning green after 40%,
and finishing red. This gradient doesn't repeat because
the last color stop defaults to 100% */
repeating-linear-gradient(0deg, blue, green 40%, red)
/* A gradient repeating five times, going from the left to right,
starting red, turning green, and back to red */
repeating-linear-gradient(to right, red 0%, green 10%, red 20%)
/* Interpolation in rectangular color space */
repeating-linear-gradient(in oklab, blue, red 50px)
/* Interpolation in polar color space */
repeating-linear-gradient(in hsl, blue, red 50px)
/* Interpolation in polar color space
with longer hue interpolation method */
repeating-linear-gradient(in hsl longer hue, blue, red 50px)
Werte
<side-or-corner>-
Die Position des Startpunkts der Verlaufslinie. Wenn angegeben, besteht sie aus dem Wort
tound bis zu zwei Schlüsselwörtern: Eines gibt die horizontale Seite an (leftoderright), das andere die vertikale Seite (topoderbottom). Die Reihenfolge der Seiten-Schlüsselwörter spielt keine Rolle. Wenn nichts angegeben ist, wirdto bottomals Standardwert angenommen.Die Werte
to top,to bottom,to left, undto rightentsprechen den Winkeln0deg,180deg,270deg, und90degjeweils. Die anderen Werte werden in einen Winkel umgewandelt. <angle>-
Der Winkel der Verlaufslinie. Ein Wert von
0degentsprichtto top; steigende Werte drehen sich im Uhrzeigersinn von dort aus. <linear-color-stop>-
Ein Farbverlauf, bestehend aus einem
<color>Wert, gefolgt von ein oder zwei optionalen Stopp-Positionen, (jeder entweder ein<percentage>oder ein<length>entlang der Verlaufsachse). Ein Prozentwert von0%oder eine Länge von0repräsentiert den Anfang des Farbverlaufs; der Wert100%ist 100% der Bildgröße, was bedeutet, dass der Farbverlauf sich nicht wiederholt. <color-hint>-
Der Farbhinweis ist ein Interpolationshinweis, der definiert, wie der Farbverlauf zwischen benachbarten Farbstopps fortschreitet. Die Länge definiert, an welchem Punkt zwischen zwei Farbstopps der Farbverlauf die Mitte des Farbübergangs erreichen soll. Wenn er weggelassen wird, ist die Mitte des Farbübergangs die Mitte zwischen zwei Farbstopps.
Hinweis: Die Darstellung von Farbstopps in sich wiederholenden linearen Farbverläufen folgt denselben Regeln wie Farbstopps in linearen Farbverläufen.
Formale Syntax
<repeating-linear-gradient()> =
repeating-linear-gradient( [ <linear-gradient-syntax> ] )
<linear-gradient-syntax> =
[ [ <angle> | <zero> | to <side-or-corner> ] || <color-interpolation-method> ]? , <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> ]#?
<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}
<length-percentage> =
<length> |
<percentage>
Beispiele
>Zebra-Streifen
body {
background-image: repeating-linear-gradient(
-45deg,
transparent,
transparent 20px,
black 20px,
black 40px
);
/* with multiple color stop lengths */
background-image: repeating-linear-gradient(
-45deg,
transparent 0 20px,
black 20px 40px
);
}
Zehn sich wiederholende horizontale Balken
body {
background-image: repeating-linear-gradient(
to bottom,
rgb(26 198 204),
rgb(26 198 204) 7%,
rgb(100 100 100) 10%
);
}
Da der letzte Farbstopp bei 10% liegt und der Farbverlauf vertikal ist, ist jeder Farbverlauf im wiederholten Farbverlauf 10% der Höhe, passend zu 10 horizontalen Balken.
Interpolation im rechteckigen Farbraum
body {
background: repeating-linear-gradient(90deg in oklab, blue, red 100px);
}
Interpolation mit Farbton
In diesem Beispiel zur Interpolation wird das hsl Farbsystem verwendet und der Farbton wird interpoliert.
.shorter {
background: repeating-linear-gradient(
90deg in hsl shorter hue,
red,
blue 300px
);
}
.longer {
background: repeating-linear-gradient(
90deg in hsl longer hue,
red,
blue 300px
);
}
Die Box oben verwendet kurze Interpolation, was bedeutet, dass die Farbe von Rot nach Blau über den kürzeren Bogen auf dem Farbkreis wechselt. Die Box unten verwendet lange Interpolation, was bedeutet, dass die Farbe von Rot nach Blau über den längeren Bogen wechselt und durch Grün, Gelb und Orange verläuft.
Hinweis: Bitte sehen Sie sich Using CSS gradients für weitere Beispiele an.
Spezifikationen
| Specification |
|---|
| CSS Images Module Level 3> # repeating-gradients> |