Ich möchte feststellen können, ob ein Browser HSL-Farben unterstützt, wenn nicht, dann möchte ich auf generierte RGB-Farben zurückgreifen (ich habe beide generiert). Gibt es eine Möglichkeit, dies zu tun, ohne tatsächlich zu überprüfen, welchen Browser der Benutzer verwendet?Wie kann ich prüfen, ob mein Browser HSL-Farben in Javascript unterstützt?
Antwort
Die einfache Antwort wäre: http://www.modernizr.com/. Sie können den Quellcode ansehen und ändern, um nur den Teil über HSL zu verwenden.
Grundsätzlich schafft es nur ein neues Element, setzt seine background-color
Verwendung HSLA-Werte und sucht dann nach dem Vorhandensein von rgba
oder hsla
im Stil Attribute des Objekts. Wenn vorhanden, unterstützt der Browser HSLA. Sehr clever:
function supportsHSLA() {
var style = createElement('a').style
style.cssText = 'background-color:hsla(120,40%,100%,.5)'
return style.backgroundColor.indexOf('rgba') > -1 ||
style.backgroundColor.indexOf('hsla') > -1
})
Beachten Sie, dass für regelmäßige CSS Nutzung metrobalderas answer unter dem Weg zu gehen, aber für den Zweck, die dazu bestimmt paulb, das ist eine Möglichkeit, es zu tun.
Detecting ist schön, aber ein Rückfall ist das Hinzufügen noch besser:
#element{
background: rgb(255, 10, 25);
background: hsl(240, 100%, 50%);
}
Zuerst legen Sie den Rückfall, die Eigenschaft, die vor allem verstehen, Browser, und legen Sie die neue Eigenschaft. Wenn dieser nicht unterstützt wird, wird der vorherige nicht überschrieben.
Obwohl, ich weiß nicht, wofür Sie HSL brauchen würden.
Dies ist ein guter Rat, aber funktioniert nicht für mich, während ich versuche, hsl zu verwenden, um die Farbe einer Polylinie in Google Maps zu setzen (nicht, dass ich das vorher erwähnte). Mit HSL lässt sich leichter Farbe erzeugen. – paullb
Wenn Sie Bedenken haben, dass die Arbeit mit HSL einfacher ist, Farben zu generieren, aber Sie sich Sorgen um die Browserunterstützung machen, können Sie in Ihrer Geschäftslogik mit HSL arbeiten, aber beim Anwenden der Farben auf die DOM-Elemente in RGB konvertieren.
siehe auch die folgende Frage:
HSL to RGB color conversion
- 1. Prüfen, ob Browser HTML5 Timepicker unterstützt
- 2. Woher weiß ich, ob mein Browser SVG 2.0 unterstützt?
- 3. Wie kann ich prüfen, ob Google Maps JavaScript API unterstützt wird?
- 4. Wie kann ich prüfen, ob ein JavaScript-Eventhandler eingerichtet wurde?
- 5. Gibt es eine Javascript-Möglichkeit, um zu prüfen, ob ein Browser MP3-Dateien unterstützt?
- 6. Wie kann ich erkennen, ob ein Browser eine CSS-Eigenschaft mit Javascript unterstützt?
- 7. Wie kann ich feststellen, ob eine JavaScript-Funktion von einem bestimmten Browser unterstützt wird?
- 8. Wie kann ich feststellen, ob eine JavaScript-Bibliothek AMD unterstützt?
- 9. javascript prüfen, ob Array-Schlüssel
- 10. Wie kann ich prüfen, ob eine App auf Android läuft?
- 11. Prüfen, ob eine URL in Javascript
- 12. Wie kann ich überprüfen, ob der Browser UTF-8-Zeichen richtig unterstützt?
- 13. Wie kann ich prüfen, ob Chrome benutzerdefinierte Tabs von Chrome unterstützt?
- 14. Wie kann ich prüfen, ob eine Variable in Scheme existiert?
- 15. prüfen, ob eine Variable in Javascript existiert
- 16. Wie kann ich überprüfen, ob mein Bluetooth-Modul unterstützt BLE-Fähigkeit in Linux
- 17. Javascript - Erkennen, ob Event Lister unterstützt wird
- 18. Erkennen, ob der Browser Position unterstützt:
- 19. fest, ob Browser integrierten Windows-Authentifizierung unterstützt
- 20. Wie kann ich feststellen, ob der Browser einen JavaScript-Fehler gefunden hat ... in JavaScript?
- 21. Kann ich testen, ob ein mobiler Browser Flash mit Web-Technologie unterstützt?
- 22. In Javascript, wie kann ich feststellen, ob mein aktueller Browser Firefox auf einem Computer ist gegen alles andere?
- 23. Browser-Unterstützung für bestimmte Mime-Typen prüfen?
- 24. Wie kann ich prüfen, ob eine Zeichenfolge in JavaScript nur aus Großbuchstaben besteht?
- 25. Wie überprüft man, ob Javascript typisierte Arrays unterstützt werden?
- 26. Wie überprüft man, ob Zeichen vom Browser des Benutzers in JavaScript nicht unterstützt werden?
- 27. Wie kann ich prüfen, ob eine Zeichenfolge nur Buchstaben enthält?
- 28. Wie kann ich herausfinden, welcher Linux-Treiber mein GPIO unterstützt?
- 29. Wie kann ich feststellen, ob mein Apple-Gerät Bluetooth Low Energy unterstützt?
- 30. Wie in Javascript prüfen, ob ein String alphabetische Zeichen
Warum nicht RGB-Stick und nicht darum kümmern? Sie tun alles dafür, etwas zu tun, das für den Benutzer keinen Unterschied macht. – Brad
HSL ist leichter zu arbeiten in Bezug auf die Erzeugung von Farben programmatisch (in meinem Fall eine Zahl zwischen 1 und 5 und die Wahl einer Farbe aus einem Gradienten) auch ich finde es einfacher, Farben zu visualisieren, wenn Sie mit HSL arbeiten – paullb