是否现代化测试包括以浏览器为前缀的功能



使用 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)
}

最新更新