【问题标题】:Why do different browsers require their own border radius style?为什么不同的浏览器需要自己的边框半径样式?
【发布时间】:2011-12-13 09:18:36
【问题描述】:

我想这个问题已经有一段时间了。为什么不同的浏览器只支持CSS的border-radius属性,如果它带有自己的特殊前缀。我不明白我为什么要写这个:

/* For Firefox and other Gecko browsers */
-moz-border-radius: 5px;
/* For Chrome/Safari and other Webkit browsers */
-webkit-border-radius: 5px;
/* For others */
border-radius: 5px;

当我可以写这个时:

border-radius: 5px;

是否有理由要求我编写前缀?为什么浏览器不都只支持border-radius 属性?这对我来说没有意义,为什么浏览器开发人员决定都拥有不同的属性,这只会让我的生活变得更艰难。其背后是否有技术或法律原因?

【问题讨论】:

  • 因为它们本身不支持标准术语?顺便说一句,你正在向合唱团布道。
  • 我更想知道这一切背后是否有技术或法律原因。
  • 这只是关于标准合规性。 border-radius 是 CSS3 的一部分,较新的 Webkit 浏览器支持 CSS3,因此它们不再需要 -webkit 前缀。
  • 在 css3 之前没有标准的“border-radius 属性”,所以浏览器不能只支持border-radius 属性。
  • @S0lder:这是技术问题。正如 Jared 已经说过的,他们不支持标准术语。通常这是因为它们不完全支持该标准。你已经给出了一个非常基本的例子,它看起来完全一样,但是如果你在做一些更复杂的事情,那么它就会出现。

标签: css browser webkit cross-browser gecko


【解决方案1】:

基本上,生活并不完美。理想情况下是的,它应该是标准化的。与开发浏览器的各种大型公司/团体打交道是一个老问题。 W3C 试图制定标准,但最终你不能强迫任何人。

尝试在这个非常相关的 SO.programmers 页面上阅读更多内容 - https://softwareengineering.stackexchange.com/questions/103048/why-is-it-unrealistic-to-expect-all-browsers-to-support-the-same-standards。还有更多关于浏览器/兼容性here

【讨论】:

    【解决方案2】:

    这个问题的答案与这里给出的基本相同:

    Why there is -moz-XXX and -webkit-XXX in the CSS3?

    “命名空间”允许供应商测试新的酷功能,如果 它们很棒,它们可以被纳入标准。这是 [这里] 发生了什么:Mozilla 和 Webkit 团队尝试了很酷 东西,现在它们将成为标准。它只是没有完成 还没有。

    【讨论】:

    • 我要补充一点,添加特定于浏览器的符号(-moz-webkit)允许浏览器供应商在以后无缝地(对于属性)支持不同的标准语法,而不会破坏以前的语法,非标准实现。
    【解决方案3】:

    最终它们都将支持标准border-radius。我理解他们在标准方面或出于类似原因时会这样做。

    (另外,不用-moz-border-radius,Gecko现在支持正常的跨浏览器了。我相信WebKit也是一样的,但我懒得检查。)

    【讨论】:

    • 较新的 Webkit 浏览器现在支持 CSS3。
    猜你喜欢
    • 2013-07-30
    • 2021-10-16
    • 1970-01-01
    • 1970-01-01
    • 2014-02-25
    • 2021-12-02
    • 2014-11-29
    • 2011-10-15
    • 2012-09-12
    相关资源
    最近更新 更多