在CSS中用不同的供应商前缀是否有必要?

3

我正在查看谷歌圣诞老人追踪器的代码,我对他们处理供应商前缀的方式有疑问。例如,在关键帧声明中:

@-webkit-keyframes fly {
    0% {
        -webkit-transform: translateY(0) translateX(0);
        -moz-transform: translateY(0) translateX(0);
        -ms-transform: translateY(0) translateX(0);
        -o-transform: translateY(0) translateX(0);
        transform: translateY(0) translateX(0);
        -webkit-transform: translateZ(0) translateY(0) translateX(0);
        -moz-transform: translateZ(0) translateY(0) translateX(0);
        -ms-transform: translateZ(0) translateY(0) translateX(0);
        -o-transform: translateZ(0) translateY(0) translateX(0);
        transform: translateZ(0) translateY(0) translateX(0);
    }
    ...
}

除了第一行的 -webkit-transform: translateY(0)translateX(0); 之外,其余部分都无法到达,是吗?这是浪费代码吗? 还是有跨供应商前缀的原因?例如,IE是否可以访问该代码(并感到困惑)?
也许只是为了 @keyframes fly {...} ?(假设将来更多的浏览器将支持它。但是再一次地,如果他们支持未经修饰的 @keyframes ,我认为他们也可能支持 transform ...(?))
无论如何,我认为圣诞老人追踪器将极大推动CSS的发展。 我会向任何说CSS编程不是真正的东西的人展示它。 :)

7
同意。因为所有的代码都被包含在 @-webkit-keyframes 中,只有 Webkit 浏览器才能理解,所以这似乎是浪费了代码。我的第一反应是这可能是生成的代码。 - myajouri
1
我同意myajouri的观点。没有理智的人会写出那样的代码。 - Niet the Dark Absol
1个回答

0

程序员可能习惯于始终列出所有特定于供应商的属性形式,即使在这种情况下并不真正需要。

这也使代码更具未来性。如果他向块添加其他特定于供应商的选择器,则无需记住添加相应的特定于供应商的属性。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接