我知道如果我们想确保一些CSS3功能在任何地方都可以使用,我们需要使用W3C推荐的前缀版本,如:
transition: all 1s ease;
-moz-transition: all 1s ease;
-o-transition: all 1s ease;
-webkit-transition: all 1s ease;
我知道前缀用于实验性功能,但为什么它们是必需的?他们为什么不在原来的W3C上测试它们呢?每个CSS3功能是否为每个浏览器都有或者有一个前缀,或者如果他们认为应该创建一个带前缀的版本?
答案 0 :(得分:6)
供应商前缀的最初目的是让供应商能够添加他们自己的非标准功能,以便在他们的CSS实现中使用。但是,它们中的大多数都用于最终成为标准的实验版本。
如果实验属性没有前缀,则表示它是属性的正确标准版本。如果每个浏览器以不同的方式呈现它,那么标准就不多了。相反,浏览器避免实现未加前缀的属性,直到它确定它是按照标准完成的,然后它开始支持无前缀属性,以表示它正确地支持这个特定标准。
并非每个功能都有前缀;实际上,供应商只有在认为必要时才会创建前缀。
答案 1 :(得分:1)
使用实验功能的人已经知道根本不应该预期标准的跨浏览器行为。
在我看来,没有必要为新功能添加前缀。它使得使用它们变得更加困难,因为你必须编写标准属性,chrome的前缀属性,firefox,opera ......它也会使样式表更大(将来,当不需要它们时,谁将删除所有这些前缀属性了吗?)。
我没有看到任何优势,但这只是我的意见。
答案 2 :(得分:1)
Ya ..可能在将来我们不必将这些前缀用于不同的浏览器,但现在每个浏览器都有不同的css库,因此作为前端开发人员我们必须在我们的css中使用这些前缀,其他一些浏览器将不渲染我们的CSS。这就是他们的工作方式,我们也遵循它们。
以下是Webkit和Firefox前缀库的说法
https://developer.mozilla.org/en-US/docs/CSS/CSS_Reference/Mozilla_Extensions