代码之家  ›  专栏  ›  技术社区  ›  william44isme

为什么浏览器不能自动更正不兼容的CSS3转换?

  •  0
  • william44isme  · 技术社区  · 12 年前

    为什么浏览器不能自动更正CSS3转换?Safari/Chrome和Firefox CSS转换之间的唯一区别是“moz”和“webkit”。当然,firefox可以添加一个自动更正功能,将css中“webkit”的每个实例都更改为“moz”,问题就会得到解决。或者还有别的东西吗?

    2 回复  |  直到 12 年前
        1
  •  2
  •   Steven V    12 年前

    通常情况下 -moz -webkit 对于CSS而言,selactor是特定于浏览器引擎的属性。选择器可能不稳定,或者在每个浏览器中细化行为时会有不同的行为。

    他们不想“自动更正”到其他实现,因为其他浏览器对CSS属性的解释可能不同。这可能会导致CSS属性在发生冲突时应该“获胜”的问题。最后,这可能会增加每个浏览器的开发时间,因为它们需要弄清楚其他浏览器引擎在做什么。

        2
  •  0
  •   deceze    12 年前

    最后,你想要的是不使用任何 -* 前缀。为了实现这一点,需要有一个标准的语法和行为,由等等, CSS标准 。然后不要重复 *-opacity: ... 多次使用不同的前缀,您只需编写 opacity: ... 一次,就像任何其他CSS声明一样。

    无论当前标准如何规定,供应商特定的前缀都允许浏览器特定的行为。它允许供应商实现还没有标准的新功能,或者在承诺之前测试功能的实现。最终目标始终是以标准定义的方式实现标准定义的所有功能;但你晚上不会到那里。新特性需要进行尽可能广泛的测试,以发现其实现中的问题或标准本身可能存在的问题。这种测试是通过特定于供应商的前缀提供功能来实现的。

    当您使用文档化的标准功能时,如 opacity ,可以肯定的是,它在浏览器之间的工作是一致的(*咳嗽*letsforgetabout*咳嗽*IE*咳嗽*forsecond*咳嗽*)。当使用特定于供应商的前缀功能时,这意味着您使用的功能风险自负,该功能可能会发生变化和/或可能无法持续工作(目前)。浏览器供应商互不使用前缀是有原因的,他们朝着标准方向努力,最终使该功能无前缀可用。