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 July 2015.

Die repeating-linear-gradient() CSS Funktion erstellt ein Bild, das aus sich wiederholenden linearen Verläufen besteht. Sie ist ähnlich wie linear-gradient() und akzeptiert die gleichen Argumente, wiederholt jedoch die Farbstopps unendlich in alle Richtungen, um ihren gesamten Container abzudecken. Das Ergebnis der Funktion ist ein Objekt des <gradient> Datentyps, welches eine spezielle Art von <image> darstellt.

Probieren Sie es aus

Die Länge des sich wiederholenden Verlaufs entspricht dem Abstand zwischen dem ersten und letzten Farbstopp. Wenn die erste Farbe keine Farbstopplänge hat, beträgt die Farbstopplänge standardmäßig 0. Bei jeder Wiederholung werden die Positionen der Farbstopps um ein Vielfaches der Länge des grundlegenden linearen Verlaufs verschoben. Somit 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 Verlauf hat ein sich wiederholender linearer Verlauf keine intrinsischen Dimensionen; das heißt, er hat keine natürliche oder bevorzugte Größe, noch ein bevorzugtes Verhältnis. Seine konkrete Größe wird der Größe des Elements entsprechen, auf das er angewendet wird.

Weil <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 bei background-color und anderen Eigenschaften, die den <color> Datentyp verwenden.

Syntax

css
/* 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 Ausgangspunkts der Verlaufsachse. Wenn angegeben, besteht er aus dem Wort to und bis zu zwei Schlüsselwörtern: eines für die horizontale Seite (left oder right) und das andere für die vertikale Seite (top oder bottom). Die Reihenfolge der Seiten-Schlüsselwörter spielt keine Rolle. Wenn nicht angegeben, ist der Standardwert to bottom.

Die Werte to top, to bottom, to left und to right sind äquivalent zu den Winkeln 0deg, 180deg, 270deg und 90deg entsprechend. Die anderen Werte werden in einen Winkel übersetzt.

<angle>

Der Winkel der Verlaufsachse. Ein Wert von 0deg entspricht to top; zunehmende Werte drehen sich im Uhrzeigersinn ab dort.

<linear-color-stop>

Der <color> Wert eines Farbstopps, gefolgt von einem oder zwei optionalen Stopp-Positionen (jeweils entweder ein <percentage> oder eine <length> entlang der Verlaufsachse). Ein Prozentsatz von 0% oder eine Länge von 0 stellt den Beginn des Verlaufs dar; der Wert 100% entspricht 100% der Bildgröße, was bedeutet, dass sich der Verlauf nicht wiederholt.

<color-hint>

Der color-hint ist ein Interpolationshinweis, der definiert, wie der Verlauf zwischen benachbarten Farbstopps fortschreitet. Die Länge gibt an, an welchem Punkt zwischen zwei Farbstopps die Verlauffarbe den Mittelpunkt des Farbwechsels erreichen soll. Wird dies weggelassen, so ist der Mittelpunkt des Farbwechsels der Mittelpunkt zwischen zwei Farbstopps.

Hinweis: Die Darstellung von Farbstopps in CSS-Verläufen folgt den gleichen Regeln wie Farbstopps in SVG-Verläufen.

Formale Syntax

<repeating-linear-gradient()> = 
repeating-linear-gradient( [ <linear-gradient-syntax> ] )

<linear-gradient-syntax> =
[ <angle> | to <side-or-corner> ]? , <color-stop-list>

<side-or-corner> =
[ left | right ] ||
[ top | bottom ]

<color-stop-list> =
<linear-color-stop> , [ <linear-color-hint>? , <linear-color-stop> ]#?

<linear-color-stop> =
<color> <length-percentage>?

<linear-color-hint> =
<length-percentage>

<length-percentage> =
<length> |
<percentage>

Beispiele

Zebra-Streifen

css
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

css
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 Verlauf vertikal ist, ist jeder Verlauf im wiederholten Verlauf 10% der Höhe, was 10 horizontale Balken ergibt.

Interpolation im rechteckigen Farbraum

css
body {
  background: repeating-linear-gradient(90deg in oklab, blue, red 100px);
}

Interpolation von Farbton

In diesem Beispiel zur Interpolation wird das hsl Farbsystem verwendet und der Farbton wird interpoliert.

css
.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
  );
}

Der obere Kasten verwendet kürzere Interpolation, was bedeutet, dass die Farbe von Rot zu Blau über die kürzere Achse auf dem Farbkreis verläuft. Der untere Kasten verwendet längere Interpolation, was bedeutet, dass die Farbe von Rot zu Blau über die längere Achse verläuft und durch Grün, Gelb und Orange geht.

Hinweis: Bitte sehen Sie Using CSS gradients für mehr Beispiele.

Spezifikationen

Specification
CSS Images Module Level 3
# repeating-gradients

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch