为什么CSS3中有-moz-XXX和-webkit-XXX?

Rya*_*yan 26 css css3

我在CSS3中最讨厌的事情是,你应该放置两个属性来做一个效果.我认为这不专业,并增加CSS大小.例如,他们为什么不团结起来-webkit-border-radius,并-moz-border-radiusborder-radius

想象一下,如果我们有10个浏览器,我们会写10行来做圆角效果吗?谁能解释一下?

zne*_*eak 29

这是因为它们是特定于供应商的.-webkit-和 - -moz-前缀属性不是标准属性."命名空间"允许供应商测试新的酷功能,如果它们很好,它们可以被纳入标准.这就是CSS3正在发生的事情:Mozilla和Webkit团队尝试了很酷的东西,现在他们将成为标准.它还没有完成.最终它将成为一致的border-radius财产.

这是一种明确的方式来表明某些东西不适用于所有浏览器.例如,-webkit-transition-property仅适用于基于Webkit的浏览器.

无论如何,-webkit-border-radius-moz-border-radius没有完全相同的工作.这是因为每个供应商,即使他们做类似的事情,也可以按照他们想要的方式实现功能.该标准将建立一种标准方式,但每个人都可以在自己的命名空间内随心所欲地做任何事情.

  • @Kumaresan,供应商无法构建他们的引擎来接受标准属性的非标准语法.标准属性必须在所有浏览器中只接受相同的语法,并且它们必须不再允许.CSS应该在所有浏览器中完全相同:如果某些语法在一个浏览器中工作但在另一个浏览器中不工作,那么它就不是标准的. (3认同)

Ode*_*ded 8

-webkit-border-radius并且-moz-border-radius在CSS3边界之前创建标准是完整的(它仍然不是批准的标准 - 它目前是候选推荐标准).

border-radius规范中可以看出,标准只需要一个标准.

它们特定于mozilla和webkit - 一旦标准获得批准,这应该改为border-radius在所有支持的浏览器上.