【发布时间】:2014-10-15 09:32:22
【问题描述】:
据我所知,使用供应商前缀的唯一原因是浏览器创建者引入它们是为了在新规范完全按照 W3C 实现之前发布它。
但是为什么我们需要为每个浏览器指定一个特定的供应商前缀呢?
如果我们看下面的 CSS,
.box{
-webkit-box-shadow: 0 0 1px #000;
-moz-box-shadow: 0 0 1px #000;
-o-box-shadow: 0 0 1px #000;
box-shadow: 0 0 1px #000;
}
为什么不能这样写?
.box{
-vendor-box-shadow: 0 0 1px #000;
box-shadow: 0 0 1px #000;
}
每个单独的浏览器在看到前缀 -vendor- 时,都会以自己的方式实现它。
这不仅使开发人员变得容易,而且对于浏览器创建者来说也很容易,因为微软和Opera 受到威胁的情况开始支持-webkit-,因为开发人员懒得使用-ms- 和-o- 永远不会上升。如果-vendor- 是这种情况,它适用于所有浏览器。
解释是什么?
【问题讨论】:
-
有趣的问题。我认为答案可能是,如果您使用通用供应商前缀,您可以提出以下问题,
"why vendor prefixes at all?"难道-vendor-不等于非供应商版本吗?前缀允许每个浏览器供应商做自己的事情。 -
@hungerstar 你需要区分 W3C 规范的实现和浏览器自己的实现。但我正在争论的是有单独的前缀
-
如果一个供应商这样做:
box-shadow( offsetx, offsety, blur, radius)而另一个供应商这样做:box-shadow( blur, radius, offsetx, offsety )你将如何设置参数以使用-vendor-box-shadow以便两个浏览器都能理解该属性? -
@hungerstar 如果使用相同的参数,为什么浏览器会更改顺序,为什么它们不能以相同的方式实现。通过不实现 W3C 规范,这意味着不使用相同的算法很好,为什么要更改参数。这阻碍了开发人员的权利
-
我认为这就是前缀的全部意义所在,您可以做自己的事情,直到它标准化(如果有的话)。您不必等待 W3C 告诉您该做什么。也许我没有拿起你放下的东西。
标签: css vendor-prefix