2016-08-01 9 views
0

Wenn Sie eine hsl-Farbe mit Javascript zuweisen, wird sie nicht als HSL-Farbe angewendet, sondern in RGB konvertiert.Farben nicht in RGB konvertieren?

document.body.style.backgroundColor = "hsl(0,100%,50%)" 
document.body.style.backgroundColor; // "rgb(255, 0, 0)" 

Ich hatte gehofft, eine HSL Farbe zuweisen, ändern Sie die Sättigung und die Helligkeit nach der Tat, aber ich kann das einfach nicht tun, da es in RGB umgewandelt wird.

Gibt es eine Möglichkeit, die Umwandlung in RGB zu verhindern oder manuell in HSL umzuwandeln?

+0

müssen Sie entweder 1) den HSL-Wert in einer Variablen beibehalten oder 2) den RGB-Wert in HSL umwandeln: [siehe hierzu] (http://stackoverflow.com/questions/2353211/hsl-to-rgb -color-conversion) –

+1

Zu welchem ​​Zweck möchten Sie die HSL Farben behalten? Bildschirme können nur RGB anzeigen, also gibt es keinen Unterschied, es sei denn, Sie versuchen, druckbare Dokumente zu erstellen, für die CMYK-Farben erforderlich wären - ich habe sie nur im CSS4-Entwurf gesehen. – TheThirdMan

+0

Wäre das hilfreich? http://stackoverflow.com/questions/2353211/hsl-to-rgb-color-conversion – LGSon

Antwort

0

Für SVG-Elemente können Sie ein Attribut anstelle eines Stils für die Farbe "fill" verwenden und das HSL-Format beibehalten.

Wie bei Elementen im Allgemeinen kann das Speichern des HSL-Werts als Variable oder Attribut, aus dem beim Ändern/Neuanlegen der Farbe gezogen werden soll, die einfachste Lösung sein.