我想知道为什么每个人都vendor-prefix在他们的生产版本中使用es,尽管 CSS 2.1 规范明确说明:
作者应避免特定于供应商的扩展(链接)
CSS 3 说:
实现应支持该功能的供应商前缀和无前缀语法。(链接)
因此,据我所知,供应商前缀用于解决跨浏览器的不同行为以实现实验性功能,并且复制粘贴特定 CSS 属性的值并为其添加不同的前缀是没有意义的。
例如,我认为这样写就可以了:
-webkit-border-top-left-radius: 10px;
-webkit-border-top-right-radius: 5px;
-webkit-border-bottom-right-radius: 10px;
-webkit-border-bottom-left-radius: 5px;
border-radius: 10px 5px;
Run Code Online (Sandbox Code Playgroud)
但是为什么人们使用 vendor prifix 来处理跨浏览器一致的事情,例如:
-webkit-transition: all 4s ease;
-moz-transition: all 4s ease;
-ms-transition: all 4s ease;
-o-transition: all 4s ease;
transition: all 4s ease;
Run Code Online (Sandbox Code Playgroud)
以及为什么像这样的工具autoprifixer会复制粘贴每个属性,即使它在浏览器之间没有不同的行为。