为什么浏览器不自动更正 CSS3 过渡?Safari/Chrome 和 Firefox CSS 转换之间的唯一区别是“moz”和“webkit”。当然,firefox 可以添加一个自动更正功能,将 css 中的每个“webkit”实例更改为“moz”,问题就会得到解决。或者还有更多的东西?
2 回答
通常 CSS 选择器的-moz
and-webkit
是特定于浏览器引擎的属性。选择器可能不稳定,或者在每个浏览器中优化行为时的行为不同。
他们不想“自动更正”到其他实现,因为其他浏览器对 CSS 属性的解释可能不同。在发生冲突时,它可能会导致关于哪些 CSS 属性应该“获胜”的问题。最后,它可能会增加每个浏览器的开发时间,因为他们需要弄清楚其他浏览器引擎在做什么。
最后,您想要的是根本不使用任何-*
前缀。为此,需要有一个由CSS 标准定义的标准语法和行为,等等。然后,您无需使用不同的前缀重复*-opacity: ...
多次,而只需编写opacity: ...
一次,就像任何其他 CSS 声明一样。
无论当前标准怎么说,供应商特定的前缀都允许浏览器特定的行为。它允许供应商实施尚无标准的新功能,或在提交之前测试功能的实施。最终目标始终是按照标准定义的方式实现标准定义的所有功能;但你不会在一夜之间到达那里。新特性需要尽可能广泛地进行测试,以发现它们的实现问题或标准本身可能存在的问题。此测试通过供应商特定前缀提供功能来进行。
当您使用已记录的标准功能opacity
(如 使用供应商特定的前缀功能时,这意味着您使用的功能可能会发生变化和/或可能无法始终如一地工作(目前),风险由您自担。浏览器供应商不会因为某种原因而相互接触前缀,他们朝着标准努力并最终使该功能不带前缀可用。