为什么浏览器对W3C标准的支持很差?

时间:2009-02-20 19:36:13

标签: standards web-standards standards-compliance

我无法理解。

是因为制作浏览器的人不关心吗?是因为我们作为开发人员已经编写了黑客代码来解决在浏览器X和Y中无效的问题吗?

12 个答案:

答案 0 :(得分:17)

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

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

不幸的是,它太长了,当你读它并认为哇这是一篇了不起的文章时,你会忘记你是如何到达那里的,以及你应该对谁进行upmod。 :)

答案 1 :(得分:13)

历史

the Great Browser War,最终由Internet Explorer赢得,其中供应商故意实施与其他浏览器不兼容的功能,以使这些网站具有那些小徽章 Designed for Netscape 4.5

由于不兼容且具有独特功能微软赢得了浏览器大战,至少在几年内。

很难

您是否曾尝试在相当标准兼容的浏览器中使用复杂的CSS?由于标准复杂,因此很难创建任何东西。我想实施更复杂。

旧网站

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

答案 2 :(得分:6)

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

  • “标准”的大部分区域是事实上的标准,这些都是浏览器大战的遗留物,并且没有适当的规范 - 如果有的话(例如DOM0)

  • 有些规格很难理解,难以实现(例如CSS可视化格式化模型 - 匿名框的详细信息,折叠边距和内联格式化上下文可能会让您头晕目眩)

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

答案 3 :(得分:3)

也许是因为浏览器存在于w3c标准之前,并且不打算从头开始重写以符合不断变化的要求。我认为他们在逐步实现新功能方面做得很好。

答案 4 :(得分:2)

你在说什么浏览器? WebKit和Opera的引擎都对W3C标准有相当好的支持(例如,两次都通过了Acid3)。 Firefox在某些方面有点缺乏,但仍然相当不错。 IE浏览器......好吧,IE很受欢迎,以至于微软并不真正关心,而且微软并不知道与其他人玩得很好。

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

答案 5 :(得分:2)

ACutally 大多数浏览器在支持开放标准方面相当不错,包括世界上一些最古老的浏览器,如Opera(已有15年历史)和FireFox,它在某种程度上基于Netscape也是从1993年开始的,或者我认为的东西。

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

虽然已经说过,但目前正在挪威进行一场 massiv 活动,以永久杀死地球上的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

答案 6 :(得分:1)

为了“捍卫”IE(特别是标准支持较差),他们表示要保持与最后1亿网站的向后兼容性,这些网站期望IE中存在“旧”行为。

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

答案 7 :(得分:0)

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

浮华 - http://www.dilbert.com/strips/comic/2005-12-31/

不那么华丽 - http://www.dilbert.com/fast/2005-12-31/

答案 8 :(得分:0)

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

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

答案 9 :(得分:0)

其中一个问题是仍然向后兼容旧网站。例如,许多符合标准的浏览器如果是针对IE6及以前制作的,则无法正确显示网站。为了弥补这一点,更受欢迎的浏览器(IE7 / 8和Firefox 3)试图弥补上限 - 保留尽可能多地显示网页的能力(即使页面不合规),同时也接近W3C标准

我怀疑这将在几年内成为一个无问题。

答案 10 :(得分:0)

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

阅读Joel Spolsky的精彩文章。

答案 11 :(得分:0)

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