使用 JavaScript 检查浏览器 CSS 属性支持?

IT技术 javascript css browser-feature-detection
2021-03-08 08:04:56

是否可以在 JavaScript 中知道客户端浏览器是否支持 CSS 属性?我说的是 CSS3 的旋转属性。我想仅在浏览器支持时执行某些功能。

4个回答

我相信你可以这样做:

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!');
}
工作示例:jsfiddle.net/dp3ueaz5但我更愿意使用这个函数:code.tutsplus.com/tutorials/...更好理解,它会自动检查供应商前缀。;)
2021-05-08 08:04:56
可能值得注意的是,这在技术上是测试浏览器是否支持 CSS3transform样式,而不是专门测试rotate() 转换功能在我(有限的)经验中,前者总是暗示后者,但我不确定这是否是一个可靠的假设(见这个问题)。
2021-05-14 08:04:56

为此,有一个新的 DOM API CSS.supportsFF、Opera(支持CSS)和Chrome Canary 已经实现了这个方法。

为了跨浏览器兼容性,您可以使用我的CSS.supports polyfill

例子:

CSS.supports("display", "table");//IE<8 return false

但是,您仍然需要为 css 属性指定浏览器前缀。例如:

CSS.supports("-webkit-filter", "blur(10px)");

我建议使用Modernizr进行特征检测。

您可以使用Modernizr库。

css 转换示例:

在 .css 文件中;

.no-csstransforms .box { color: red; }
.csstransforms .box { color: green; }

在 .js 文件中;

if (Modernizr.csstransforms) {
  // supported
} else {
  // not-supported
}

可以试试这个吗?

var temp = document.createElement('div');
var isSupport = temp.style['propName'] != undefined;
不是一个理想的答案,但为什么这被低估了?我没有看到任何技术错误
2021-04-27 08:04:56
@RobertDundon 也许我的解决方案就像第一个一样,无论如何感谢您的支持 =)
2021-05-08 08:04:56