为什么浏览器不能自动更正CSS3过渡? Safari / Chrome和Firefox CSS过渡的唯一区别是“moz”和“webkit”。当然firefox可以添加一个自动更正功能,将css中“webkit”的每个实例更改为“moz”,问题就解决了。或者还有什么?
答案 0 :(得分:2)
通常{CSS} selctors的-moz
和-webkit
是特定于浏览器引擎的属性。选择器可能不稳定,或者在每个浏览器中采取不同的行为,因为它们会改进行为。
他们不希望对其他实现“自动更正”,因为其他浏览器对CSS属性的解释可能不同。它可能会导致在发生冲突时CSS属性应该“赢”的问题。最后,它可能会增加每个浏览器的开发时间,因为他们需要弄清楚其他浏览器引擎正在做什么。
答案 1 :(得分:0)
最后你想要的是根本不使用任何-*
前缀。为了实现这一点,需要有一个标准的语法和行为,等待它, CSS标准。然后,不要使用不同的前缀多次重复*-opacity: ...
,而只需编写opacity: ...
一次,就像任何其他CSS声明一样。
供应商特定的前缀用于允许浏览器特定的行为,无论当前标准是什么。它允许供应商实现尚未存在标准的新功能,或者在提交之前测试功能的实现。最终目标始终是以标准定义的方式实现标准定义的所有功能;但是你不会在那里过夜。需要尽可能广泛地测试新功能,以发现其实现中的问题或标准本身可能存在的问题。此测试通过通过供应商特定前缀提供功能来实现。
当您使用像opacity
这样的文档标准功能时,它非常确定它可以在浏览器中一致地工作(* cough * letsforgetabout * cough * IE * cough * forasecond * cough *)。使用特定于供应商的前缀功能时,这意味着您使用的功能需要您自担风险,且可能会发生变化和/或可能无法始终如一地工作。浏览器供应商出于某种原因不会触及彼此的前缀,他们会朝着标准工作,并最终使该功能无需前缀。