Ich wollte ein paar Spannweiten dynamisch mit hsl Hintergrund-Farbe aufgetragen style-Attribute, wie dies hinzuzufügen:Warum ersetzt jQuery hsl() durch rgb()?
diese<span style="background-color: hsl(190, 75%, 43%)"></span>
Hier ist mein jQuery tun:
ivar hues = [ 172, 178, 184, 190, 196, 202, 208 ];
$.each(hues, function(index, backgroundHue) {
var newSpan = $('<span></span>');
newSpan.css('background-color', 'hsl('+backgroundHue+', 75%, 43%)');
someBlock.append(newSpan);
});
Aber als Ergebnis bekam Spanne mit rgb() Hintergrundfarbe (auto-konvertiert von hsl()):
<span style="background-color: rgb(27, 165, 192);"></span>
Hier ist eine Geige: https://jsfiddle.net/pbjcvwdh/5/
Kann jemand erklären, warum ist das und gibt es eine Möglichkeit, diese Auto-Konvertierung zu vermeiden? Wenn ich Hintergrundfarbe statisch in HTML anwende, ändert sich das nicht in rgb().
jQuery hat nichts mit diesem Verhalten zu tun - es ist einfach, weil Browser den Wert im RGB-Format darstellen. Sie können es leider nicht ändern. Wenn Sie den Wert im HSL-Format erhalten möchten, müssen Sie ihn zurück von RGB konvertieren. –
Um das oben zu beweisen, hier ist eine native JS-Implementierung, die das gleiche Verhalten zeigt: https://jsfiddle.net/pbjcvwdh/7/ –
Yup, richtige Antwort, IE zeigt rgb() hehe. Danke – Damiano