在JavaScript中,是否有可能知道客户端浏览器是否支持CSS属性?我指的是CSS3的旋转属性。只有在浏览器支持这些属性时,我才想执行一些函数。
在JavaScript中,是否有可能知道客户端浏览器是否支持CSS属性?我指的是CSS3的旋转属性。只有在浏览器支持这些属性时,我才想执行一些函数。
我相信你可以这样做:
if ('WebkitTransform' in document.body.style
|| 'MozTransform' in document.body.style
|| 'OTransform' in document.body.style
|| 'transform' in document.body.style)
{
alert('I can Rotate!');
}
有一个新的DOM API CSS.supports 用于此目的。FF,Opera(作为supportsCSS)和Chrome Canary已经实现了这个方法。
为了实现跨浏览器兼容性,您可以使用我的CSS.supports polyfill
例子:
CSS.supports("display", "table");//IE<8 return false
但是,在为CSS属性添加前缀时,您仍然需要指定浏览器前缀。例如:
CSS.supports("-webkit-filter", "blur(10px)");
我建议使用Modernizr来进行特性检测。
也许可以试试这个?
var temp = document.createElement('div');
var isSupport = temp.style['propName'] != undefined;
你可以使用Modernizr库。
CSS transform的示例:
在.css文件中;
.no-csstransforms .box { color: red; }
.csstransforms .box { color: green; }
在 .js 文件中;
if (Modernizr.csstransforms) {
// supported
} else {
// not-supported
}
transform
样式,而不是特定的rotate()
transform function。在我的(有限)经验中,前者总是暗示着后者,但我不确定这是否是一个可靠的假设(请参见这个问题)。 - Kylok