Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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 aus sich wiederholenden linearen Verläufen. Sie ist ähnlich zur linear-gradient() und nimmt die gleichen Argumente, aber wiederholt die Farbstops unendlich in alle Richtungen, um den gesamten Container abzudecken. Das Ergebnis der Funktion ist ein Objekt des Datentyps <gradient>, welcher 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 Verlaufs ist der Abstand zwischen dem ersten und letzten Farbstop. Wenn die erste Farbe keine Farbstopplänge hat, ist die Farbstopplänge standardmäßig 0. Bei jeder Wiederholung werden die Positionen der Farbstops um ein Vielfaches der Länge des grundlegenden linearen Verlaufs verschoben. Dadurch fällt die Position jedes endenden Farbstops mit einem startenden Farbstop zusammen; sind die Farbwerte unterschiedlich, ergibt dies einen scharfen visuellen Übergang. Dies kann geändert werden, indem die erste Farbe 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 entspricht der Größe des Elements, auf das es 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 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 Ausgangsposition der Verlaufslinie. Falls angegeben, besteht sie aus dem Wort to und bis zu zwei Schlüsselwörtern: eines für die horizontale Seite (left oder right) und eines für die vertikale Seite (top oder bottom). Die Reihenfolge der Seiten-Schlüsselwörter ist unerheblich. Falls nicht angegeben, wird standardmäßig to bottom verwendet.

Die Werte to top, to bottom, to left und to right entsprechen den Winkeln 0deg, 180deg, 270deg bzw. 90deg. Die anderen Werte werden in einen Winkel übersetzt.

<angle>

Der Winkel der Verlaufsrichtung. Ein Wert von 0deg entspricht to top; steigende Werte rotieren im Uhrzeigersinn ab dort.

<linear-color-stop>

Ein <color> Wert eines Farbverlaufs-Stops, gefolgt von ein oder zwei optionalen Stopppositionen (jeweils entweder ein <percentage> oder ein <length> entlang der Verlaufsachse). Ein Prozentsatz von 0% oder eine Länge von 0 stellt den Start des Verlaufs dar; der Wert 100% ist 100% der Bildgröße, was bedeutet, dass der Verlauf sich nicht wiederholen wird.

<color-hint>

Der color-hint ist ein Interpolationshinweis, der definiert, wie der Verlauf zwischen benachbarten Farbstops verläuft. Die Länge definiert, an welchem Punkt zwischen zwei Farbstops der Verlauf die Mitte des Farbübergangs erreichen sollte. Wenn weggelassen, ist die Mitte des Farbübergangs die Mitte zwischen zwei Farbstops.

Hinweis: Die Darstellung von Farbstops in sich wiederholenden linearen Verläufen folgt den gleichen Regeln wie Farbstops in linearen Verlä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

Zebrastreifen

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 Farbstop 10% beträgt 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 mit Farbton

In diesem Beispiel für 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
  );
}

Das obere Kästchen verwendet die kürzere Interpolation, was bedeutet, dass die Farbe von Rot zu Blau über den kürzeren Bogen auf dem Farbrad verläuft. Das untere Kästchen verwendet die längere Interpolation, was bedeutet, dass die Farbe von Rot zu Blau über den längeren Bogen verläuft und dabei durch Grün-, Gelb- und Orangetöne geht.

Hinweis: Bitte schauen Sie sich CSS-Verläufe verwenden für mehr Beispiele an.

Spezifikationen

Specification
CSS Images Module Level 3
# repeating-gradients

Browser-Kompatibilität

Siehe auch