使用 Modernizr 测试功能时,如下所示:
if (Modernizr.csstransforms) {
$("#someDiv").addClass('rotate');
}
对于仅支持此规则的前缀应用程序的早期浏览器,Modernizr 测试是否返回 true,例如 -mz-transform
,还是只是测试标准transform
? 我阅读了文档,但找不到对检查的任何引用。
目标是仅在浏览器支持转换时才应用转换。举个例子。
假设一个.rotate
类应用了 CSS 2D 转换:
.rotate {transform:rotate(30deg)}
该类是否需要包含额外的前缀转换,或者 Modernizr 没有考虑它们? 显然,如果 Modernizr 不寻找它们,那么添加所有这些前缀版本是没有意义的。
.rotate {-moz-transform:rotate(30deg);
-ms-transform:rotate(30deg);
-o-transform:rotate(30deg);
-webkit-transform:rotate(30deg);
transform:rotate(30deg)}
Modernizr 针对所有前缀和前缀版本进行测试。但是,您仍然需要应用所有这些css规则,因为modernizr只是告诉您它支持它,而不是有效的特定规则。
此外,Modernizr 可以向 html
元素添加类,因此您无需执行
if (Modernizr.csstransforms) {
$("#someDiv").addClass('rotate');
}
因为而不是
.rotate .foo {
transform:rotate(30deg)
}
你可以做
. csstransforms .foo {
transform:rotate(30deg)
}