我无法弄清楚.
是因为制作浏览器的人不在乎吗?是因为我们作为开发人员已经编写了黑客代码来解决在浏览器X和Y中无效的问题吗?
我讨厌成为链接Joel文章的人,但这篇文章是这个问题的最佳答案之一.
http://www.joelonsoftware.com/items/2008/03/17.html
不幸的是,它是如此之长,以至于当你阅读它并认为哇这是一篇了不起的文章时,你会忘记你是如何到达那里以及你应该对谁进行upmod.:)
有一个伟大的浏览器大战,最终由Internet Explorer赢得,其中供应商故意实现与其他浏览器不兼容的功能,以使这些网站具有为Netscape 4.5设计的那些小徽章.
由于不兼容并具有独特的功能,微软赢得了浏览器大战,至少在几年内.
您是否曾尝试在相当标准兼容的浏览器中使用复杂的CSS?由于标准复杂,因此很难创建任何东西.我想实现更复杂.
许多网站的设计都考虑了错误的HTML实现(请参阅我的第一部分).如果所有浏览器都实现了100%兼容的渲染引擎,那么很多网站都会破解.他们正在努力逐渐做到正确.
规范中的许多边缘情况未指定/未指定,并且浏览器最终以不同方式实现它们(例如,HTML在v5之前未能指定错误恢复).
大部分"标准"是事实上的标准,是浏览器战争遗留下来的,没有适当的规范 - 如果有的话(例如DOM0)
有些规范很难理解并且难以实现(例如CSS可视化格式化模型 - 匿名框的详细信息,折叠边距和内联格式化上下文可能会让您头晕目眩)
对于浏览器供应商而言,与现有页面完美兼容,而不是实现不会很快为其提供竞争优势的新功能/标准,这一点更为重要.如果标准和网站不同意,网站总会获胜(这就是为什么W3C必须采用HTML5以避免变得无关紧要).