<hue-interpolation-method> CSS-Typ
Baseline
2024
Neu verfügbar
Seit June 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 <hue-interpolation-method> CSS Datentyp repräsentiert den Algorithmus, der für die Interpolation zwischen <hue>-Werten verwendet wird.
Die Interpolationsmethode gibt an, wie ein Mittelpunkt zwischen zwei Farbtonwerten basierend auf einem Farbkreis gefunden wird.
Er wird als Bestandteil des Datentyps <color-interpolation-method> verwendet.
Bei der Interpolation von <hue>-Werten verwendet der Farbtoninterpolationsalgorithmus standardmäßig shorter.
Syntax
Ein <hue-interpolation-method>-Wert besteht aus dem Namen eines Farbtoninterpolationsalgorithmus, gefolgt von einem literalen 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 schneiden. Beide Bögen beginnen am ersten Radius und enden am zweiten Radius, aber einer verläuft im Uhrzeigersinn und der andere gegen den Uhrzeigersinn.
Hinweis: Die folgenden Beschreibungen und Abbildungen basieren auf Farbkreisen, bei denen die Farbtonwinkel im Uhrzeigersinn zunehmen. Beachten Sie, dass es Farbkreise gibt, bei denen eine Winkelzunahme eine gegen den Uhrzeigersinn gerichtete Operation ist.
Für ein Paar von Farbtonwinkeln θ1 und θ2, die auf den Bereich [0deg, 360deg) normalisiert sind, gibt es vier Algorithmen, um zu bestimmen, welcher Bogen verwendet wird, wenn von θ1 zu θ2 interpoliert wird:
shorter-
Verwenden Sie den kürzeren Bogen. Wenn die beiden Radien übereinstimmen, degeneriert der Bogen zu einem einzelnen Punkt. Wenn beide Bögen die gleiche Länge haben:
- Wenn
θ1 < θ2, verwenden Sie den im Uhrzeigersinn verlaufenden Bogen; - Wenn
θ1 > θ2, verwenden Sie den gegen den Uhrzeigersinn verlaufenden Bogen.
θ1 = 45deg,θ2 = 135degθ1 = 135deg,θ2 = 45deg

- Wenn
longer-
Verwenden Sie den längeren Bogen. Wenn die beiden Radien übereinstimmen:
- Wenn
θ1 ≤ θ2, wird der Bogen der vollständige Umfang mit einer im Uhrzeigersinn gerichteten Orientierung. - Wenn
θ1 > θ2, wird der Bogen der vollständige Umfang mit einer gegen den Uhrzeigersinn gerichteten Orientierung.
Wenn beide Bögen die gleiche Länge haben:
- Wenn
θ1 < θ2, verwenden Sie den im Uhrzeigersinn verlaufenden Bogen; - Wenn
θ1 > θ2, verwenden Sie den gegen den Uhrzeigersinn verlaufenden Bogen.
θ1 = 45deg,θ2 = 135degθ1 = 135deg,θ2 = 45deg

- Wenn
increasing-
Verwenden Sie den im Uhrzeigersinn verlaufenden Bogen. Wenn die beiden Radien übereinstimmen, degeneriert der Bogen zu einem einzelnen Punkt.
θ1 = 45deg,θ2 = 135degθ1 = 135deg,θ2 = 45deg

decreasing-
Verwenden Sie den gegen den Uhrzeigersinn verlaufenden Bogen. Wenn die beiden Radien übereinstimmen, degeneriert der Bogen zu einem einzelnen Punkt.
θ1 = 45deg,θ2 = 135degθ1 = 135deg,θ2 = 45deg

Da es nur zwei Bögen zur Auswahl gibt, sind diese Algorithmen unter bestimmten Umständen paarweise äquivalent. Genauer gesagt:
- Wenn
0deg < θ2 - θ1 < 180degoderθ2 - θ1 < -180deg, sindshorterundincreasingäquivalent, währendlongerunddecreasingäquivalent sind. - Wenn
-180deg < θ2 - θ1 < 0degoderθ2 - θ1 > 180deg, sindshorterunddecreasingäquivalent, währendlongerundincreasingäquivalent sind.
Ein bemerkenswertes Merkmal von increasing und decreasing ist, dass, wenn der Unterschied der Farbtonwinkel während einer Übergangs- oder Animationssequenz durch 180deg geht, der Bogen nicht wie bei shorter und longer auf die andere Seite wechselt.
Formale Syntax
<hue-interpolation-method> =
[ shorter | longer | increasing | decreasing ] hue
Beispiele
>Vergleich der Farbtoninterpolationsalgorithmen
Das folgende Beispiel zeigt die Wirkung der Verwendung verschiedener Farbtoninterpolationsalgorithmen in einem linear-gradient().
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
.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
<color-interpolation-method><hue>Datentyp