我希望能够确定浏览器是否支持HSL颜色,如果不支持,那么我想依靠生成的RGB颜色(我都生成了)。有什么方法可以执行此操作而无需实际检查用户使用的浏览器?
最佳答案
简单的答案是:http://www.modernizr.com/。
您可以查看源代码并将其修改为仅使用有关HSL的部分。
基本上,它只是创建一个新元素,使用HSLA值设置其background-color
,然后在对象的样式属性中查找rgba
或hsla
的存在。如果存在,则浏览器支持HSLA。非常聪明:
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
})
请注意,对于常规CSS用法,下面的metrobalderas answer是可行的方法,但是出于paulb的目的,这是一种实现方法。