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

View in English Always switch to English

CSS-Typ <hue-interpolation-method>

Baseline 2024
Neu verfügbar

Seit Juni 2024 funktioniert diese Funktion auf aktuellen Geräten und in aktuellen Browserversionen. Auf älteren Geräten oder in älteren Browsern funktioniert sie möglicherweise nicht.

Der CSS-Datentyp <hue-interpolation-method> beschreibt den Algorithmus zur Interpolation zwischen <hue>-Werten. Die Interpolationsmethode legt fest, wie anhand eines Farbkreises ein Mittelpunkt zwischen zwei Farbtonwerten gefunden wird. Sie wird als Bestandteil des Datentyps <color-interpolation-method> verwendet.

Bei der Interpolation von <hue>-Werten ist shorter der Standardalgorithmus.

Syntax

Ein <hue-interpolation-method>-Wert besteht aus dem Namen eines Algorithmus zur Farbtoninterpolation, gefolgt vom wörtlichen Token hue:

shorter hue
longer hue
increasing hue
decreasing hue

Werte

Jedes Paar von Farbtonwinkeln entspricht zwei Radien auf dem Farbkreis, die den Umfang in zwei mögliche Bögen für die Interpolation teilen. Beide Bögen beginnen am ersten Radius und enden am zweiten Radius; einer verläuft jedoch im Uhrzeigersinn, der andere gegen den Uhrzeigersinn.

Hinweis: Die folgenden Beschreibungen und Abbildungen beziehen sich auf Farbkreise, bei denen die Farbtonwinkel im Uhrzeigersinn zunehmen. Beachten Sie, dass es auch Farbkreise gibt, bei denen zunehmende Winkel gegen den Uhrzeigersinn verlaufen.

Für ein Paar von Farbtonwinkeln θ1 und θ2, die auf den Bereich [0deg, 360deg) normiert sind, gibt es vier Algorithmen, die bestimmen, welcher Bogen bei der Interpolation von θ1 nach θ2 verwendet wird:

shorter

Verwendet den kürzeren Bogen. Fallen die beiden Radien zusammen, reduziert sich der Bogen auf einen einzelnen Punkt. Sind beide Bögen gleich lang:

  • Wenn θ1 < θ2, wird der Bogen im Uhrzeigersinn verwendet;
  • wenn θ1 > θ2, wird der Bogen gegen den Uhrzeigersinn verwendet.
θ1 = 45deg, θ2 = 135deg θ1 = 135deg, θ2 = 45deg
shorter mit θ1 = 45deg und θ2 = 135deg shorter mit θ1 = 135deg und θ2 = 45deg
longer

Verwendet den längeren Bogen. Fallen die beiden Radien zusammen:

  • Wenn θ1 ≤ θ2, umfasst der Bogen den gesamten Umfang und verläuft im Uhrzeigersinn.
  • Wenn θ1 > θ2, umfasst der Bogen den gesamten Umfang und verläuft gegen den Uhrzeigersinn.

Sind beide Bögen gleich lang:

  • Wenn θ1 < θ2, wird der Bogen im Uhrzeigersinn verwendet;
  • wenn θ1 > θ2, wird der Bogen gegen den Uhrzeigersinn verwendet.
θ1 = 45deg, θ2 = 135deg θ1 = 135deg, θ2 = 45deg
longer mit θ1 = 45deg und θ2 = 135deg longer mit θ1 = 135deg und θ2 = 45deg
increasing

Verwendet den Bogen im Uhrzeigersinn. Fallen die beiden Radien zusammen, reduziert sich der Bogen auf einen einzelnen Punkt.

θ1 = 45deg, θ2 = 135deg θ1 = 135deg, θ2 = 45deg
increasing mit θ1 = 45deg und θ2 = 135deg increasing mit θ1 = 135deg und θ2 = 45deg
decreasing

Verwendet den Bogen gegen den Uhrzeigersinn. Fallen die beiden Radien zusammen, reduziert sich der Bogen auf einen einzelnen Punkt.

θ1 = 45deg, θ2 = 135deg θ1 = 135deg, θ2 = 45deg
decreasing mit θ1 = 45deg und θ2 = 135deg decreasing mit θ1 = 135deg und θ2 = 45deg

Da nur zwei Bögen zur Auswahl stehen, sind diese Algorithmen unter bestimmten Bedingungen paarweise gleichwertig. Genauer gesagt:

  • Wenn 0deg < θ2 - θ1 < 180deg oder θ2 - θ1 < -180deg, sind shorter und increasing gleichwertig, während longer und decreasing gleichwertig sind.
  • Wenn -180deg < θ2 - θ1 < 0deg oder θ2 - θ1 > 180deg, sind shorter und decreasing gleichwertig, während longer und increasing gleichwertig sind.

Eine Besonderheit von increasing und decreasing ist, dass der Bogen nicht wie bei shorter und longer auf die andere Seite wechselt, wenn die Differenz der Farbtonwinkel während eines Übergangs oder einer Animation den Wert 180deg überschreitet.

Formale Syntax

<hue-interpolation-method> = 
[ shorter | longer | increasing | decreasing ] hue

Beispiele

Vergleich der Algorithmen zur Farbtoninterpolation

Das folgende Beispiel zeigt, wie sich verschiedene Algorithmen zur Farbtoninterpolation in einem linear-gradient() auswirken.

HTML

html
<div class="hsl">
  <p>HSL</p>
</div>
<div class="hsl-increasing">
  <p>HSL increasing</p>
</div>
<div class="hsl-decreasing">
  <p>HSL decreasing</p>
</div>
<div class="hsl-shorter">
  <p>HSL shorter</p>
</div>
<div class="hsl-longer">
  <p>HSL longer</p>
</div>
<div class="hsl-named">
  <p>HSL named</p>
</div>
<div class="hsl-named-longer">
  <p>HSL named (longer)</p>
</div>

CSS

css
.hsl {
  background: linear-gradient(
    to right in hsl,
    hsl(39deg 100% 50%),
    hsl(60deg 100% 50%)
  );
}
.hsl-increasing {
  background: linear-gradient(
    to right in hsl increasing hue,
    hsl(190deg 100% 50%),
    hsl(180deg 100% 50%)
  );
}
.hsl-decreasing {
  background: linear-gradient(
    to right in hsl decreasing hue,
    hsl(39deg 100% 50%),
    hsl(60deg 100% 50%)
  );
}
.hsl-shorter {
  background: linear-gradient(
    to right in hsl shorter hue,
    hsl(39deg 100% 50%),
    hsl(60deg 100% 50%)
  );
}
.hsl-longer {
  background: linear-gradient(
    to right in hsl longer hue,
    hsl(39deg 100% 50%),
    hsl(60deg 100% 50%)
  );
}
.hsl-named {
  background: linear-gradient(to right in hsl, orange, yellow);
}
.hsl-named-longer {
  background: linear-gradient(to right in hsl longer hue, orange, yellow);
}

Ergebnis

Spezifikationen

Spezifikation
CSS Color Module Level 4
# hue-interpolation

Browser-Kompatibilität

Siehe auch