为什么浏览器会为CSS属性创建供应商前缀?

时间:2011-11-15 05:18:36

标签: css vendor-prefix

也许这是一个明显的答案,但

为什么在地球上浏览器会决定为border-radius等创建自己的供应商前缀?

我的意思是:为什么我要打字:

-moz-border-radius: 10px;
-webkit-border-radius: 10px;
border-radius: 10px;

是不是因为每个平台都认为“我们很酷,我们会想出一个更好的方式来做圆角?”为一个输入三行似乎完全无法解释多余。

2 个答案:

答案 0 :(得分:54)

这是因为这些功能是在规范达到最终发布阶段之前由供应商实现的。

供应商前缀确保不会发生与更改功能等冲突。

  

最初,供应商前缀的目的是允许浏览器制造商   开始支持实验性的CSS声明。

     

让我们说一个W3C工作组正在讨论一个网格声明(其中,   顺便说一句,这不是一个坏主意)。让我们再说一遍   有些人创建了草案规范,但其他人不同意   一些细节。众所周知,这个过程可能需要很长时间。

     

让我们进一步说微软作为一个实验决定   实现建议的网格。此时,微软无法做到   确保规范不会改变。因此,相反   将网格添加到CSS中,它添加了-ms-grid。

     

供应商前缀有点说“这是微软的解释   正在进行的提案。“因此,如果网格的最终定义是   不同的是,微软可以不加破坏地添加新的CSS属性网格   依赖于-ms-grid的页面

Source

答案 1 :(得分:11)

2016年更新

正如这篇文章老了,重要的是要提到现在大多数供应商都明白这些前缀只是创建了不必要的重复代码以及需要指定3种不同css规则的情况在所有浏览器中工作的一个效果是不需要的效果。

正如this glossary中提到的关于Mozilla对ArrayList<WordDefination> getAllWords()SELECT * FROM "+DICTIONARY_DATABASE;的观点,

  

浏览器供应商现在正试图摆脱供应商前缀进行实验   特征。他们注意到Web开发人员正在使用它们   生产网站,污染全球空间,并使其更多   弱者难以表现良好。

例如,就在几年前,要在你必须写的盒子上设置一个圆角:

Vendor Prefix

但是现在浏览器已经完全支持这个功能,你真的只需要标准版:

May 3, 2016