【问题标题】:Why do browsers have such poor support for W3C standards? [closed]为什么浏览器对 W3C 标准的支持这么差? [关闭]
【发布时间】:2010-10-08 22:15:41
【问题描述】:

我想不通。

是因为制作浏览器的人不在乎吗?是因为我们作为开发人员已经编写了 hack 代码来解决在浏览器 X 和 Y 中不起作用的问题吗?

【问题讨论】:

    标签: standards web-standards standards-compliance


    【解决方案1】:

    我讨厌成为链接 Joel 文章的人,但这篇文章是该问题的最佳答案之一。

    http://www.joelonsoftware.com/items/2008/03/17.html

    不幸的是,它太长了,以至于当您阅读它并认为哇这是一篇了不起的文章时,您会忘记您是如何到达那里的以及应该升级谁。 :)

    【讨论】:

    • 一个非常有洞察力的编辑 ;-)
    • 在看到您的编辑之前,我已为您投票。发现这是一篇很有启发性的文章。
    • 呵呵。确实很长,但很好。
    【解决方案2】:

    历史

    the Great Browser War,最终被 Internet Explorer 赢得,供应商故意实现与其他浏览器不兼容的功能,以使这些网站带有那些小徽章专为 Netscape 4.5 设计 .

    由于不兼容并拥有独特的功能,微软赢得了浏览器之战,至少在几年之内。

    很难

    您是否曾尝试在标准兼容的浏览器中使用复杂的 CSS?很难创造任何东西,因为标准很复杂。我想实现会更复杂。

    旧网站

    许多网站在设计时都考虑到了错误的 HTML 实现(请参阅我的第一部分)。如果所有浏览器都实现了 100% 兼容的渲染引擎,那么很多网站都会崩溃。他们正在努力逐步改正。

    【讨论】:

      【解决方案3】:
      • 规范中的许多边缘情况是未指定/未指定,浏览器最终会以不同的方式实现它们(例如,HTML 在 v5 之前未能指定错误恢复)。

      • 大部分“标准”是事实上的标准,它们是浏览器大战的遗留物,没有适当的规范——如果有的话(例如 DOM0)

        李>
      • 有些规范简直难以理解且难以实现(例如 CSS 视觉格式化模型 - 匿名框、折叠边距和内联格式化上下文的细节可能会让您头晕目眩)

      • 对于浏览器供应商而言,与现有页面完美兼容比实施不会很快为他们带来竞争优势的新功能/标准更为重要。 如果标准和网站不一致,网站总是赢(这就是为什么 W3C 必须采用 HTML5 以避免变得无关紧要)。

      【讨论】:

        【解决方案4】:

        也许是因为浏览器在 w3c 标准之前就已经存在,并且不会为了满足不断变化的需求而从头开始重写。我认为他们在逐步实现新功能方面做得很好。

        【讨论】:

        • 不。 CSS2 已有 10 多年的历史了。 KHTML 项目在 HTML4 和 CSS2 完成两年后开始。 Opera 在 2003 年抛弃了他们的旧引擎并从头开始。Mozilla/Gecko 也有类似的故事。标准不会经常改变,供应商已经采取了重大举措来采用它们。
        【解决方案5】:

        你在说什么浏览器? WebKit 和 Opera 的引擎都对 W3C 标准有相当好的支持(例如,不久前都通过了 Acid3)。火狐在某些方面有些欠缺,但还是很不错的。 IE...嗯,IE 如此流行,以至于微软并不真正关心,而且微软也不知道如何与其他人相处融洽。

        当然,即使是最符合标准的浏览器在解析 Web 标记时仍然允许有点松散,但这主要是因为,从历史上看,网页设计师/开发人员并没有真正努力 em> 也符合标准。

        【讨论】:

          【解决方案6】:

          实际上大多数浏览器在支持开放标准方面都非常好,包括世界上一些最古老的浏览器,比如 Opera(大约 15 岁)和 FireFox,它在某种程度上基于网景也像 1993 年或我认为的东西。

          唯一有“w3c 标准问题”的是微软,坦率地说,为什么他们“有这么多问题”我认为你应该问他们。但我的猜测是,他们在支持标准方面看不到任何“钱”,因为这将使创建便携式应用程序和促进竞争等变得更加容易......

          虽然已经说过,但目前挪威正在进行一场大规模运动,以永久杀死地球表面的 IE6,请在此处阅读一些亮点; http://ra-ajax.org/ground-zero-in-the-ongoing-war-against-ie6.blog

          这个是我最喜欢的 ;)

          http://ra-ajax.org/facebook-joins-the-war-against-ie6.blog

          【讨论】:

            【解决方案7】:

            为了“保护” IE(尤其是其标准支持更差),他们声明是为了保持与最后 1 亿个期望 IE 中的“旧”行为的网站向后兼容。

            好消息是,在 IE8 中,如果您的页面设置正确,您可以在默认情况下期待更好的基于标准的渲染和脚本执行。

            【讨论】:

              【解决方案8】:

              这只是所有供应商都不会支持的标准的一部分。我们可能猜想,浏览器开发人员在为浏览网页的用户添加或增强功能方面感到压力更大,而不是重构他们的解析器和布局代码以使其更符合要求。

              基本上,它似乎“足够好”,因为我们都知道如何跳过障碍来绕过它。

              【讨论】:

                【解决方案9】:

                其中一个问题是与旧网站保持向后兼容。例如,如果许多符合标准的浏览器是为 IE6 和更早版本制作的,则它们将无法正确显示网站。作为补偿,更流行的浏览器(IE7/8 和 Firefox 3)试图弥补上限 - 保留尽可能多地显示 Web 的能力(即使页面不兼容),同时也接近 W3C 标准.

                我怀疑这将在几年内成为非问题。

                【讨论】:

                  【解决方案10】:

                  这是一个“Many-to-Many Market”。

                  阅读 Joel Spolsky 的优秀文章。

                  【讨论】:

                    【解决方案11】:

                    如果浏览器完全符合标准,那么大多数网站将无法访问。必须妥协。

                    【讨论】:

                      【解决方案12】:

                      Dilbert 希望加入促进 Web 服务标准的行业联盟。

                      华而不实 - http://www.dilbert.com/strips/comic/2005-12-31/

                      不那么花哨 - http://www.dilbert.com/fast/2005-12-31/

                      【讨论】:

                      • 否决链接到 Flash-ridden 版本而不是 /fast/。
                      • 目前好像没有/fast/版本……整个网站好像很慢,还是只有我一个人?
                      猜你喜欢
                      • 1970-01-01
                      • 2021-07-27
                      • 2019-02-12
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 2012-04-03
                      • 2013-05-24
                      • 1970-01-01
                      相关资源
                      最近更新 更多