我应该为所有浏览器使用几乎标准模式吗?

时间:2010-07-06 03:43:08

标签: html cross-browser

我正在开发一个需要IE6兼容性的项目。不幸的是,IE6 and IE7 do not support standards mode。因此,我很想在所有浏览器中使用标准,并且完全忽略标准模式,因此我只针对以相同标准模式运行的浏览器。我认为,由于XHTML过渡是如此受欢迎,几乎标准大多数都保证在未来很长一段时间内得到支持。这是个好主意吗?

3 个答案:

答案 0 :(得分:5)

不,这不是一个好主意。

这不是一个好主意,因为IE6最终会过时(早点而不是晚点),你会有一个乱糟糟的网站,你必须跳过篮球让它看起来不错。

更好的解决方案是使用progressive enhancement,简而言之,支持IE6所需的最低限度,并在浏览器之后提供现代标准。

通过渐进式增强功能,您仍然可以获得对IE6的支持,但您可以使用基于标准的网站,该网站更易于维护和开发。

答案 1 :(得分:4)

为了IE,使用“几乎标准”模式会降低其他浏览器的速度。 IE6 / 7不支持标准模式,因为它不称职。你永远不应该写出针对无能的标记。使用严格的文档类型编写现代标记,并使用“条件评论”来破解并击败IE,使其达到您可以从中获得的最佳合规性,否则您将注定陷入黑暗和伤害的世界。

答案 2 :(得分:2)

我公司软件的大约40%的用户群使用IE6(几年前降低了约60%)。

我们的母版页具有XHTML 1.1 doctype集。我使用最新版本的Firefox完成所有设计工作,然后一旦我完成了我想要的工作,我在IE6中使用MS发布的虚拟PC的应用程序兼容性虚拟机进行测试,并对我的CSS进行任何必要的更改IE6需要。

大多数时候我只能使用稍微不同的CSS而不必诉诸黑客,尽管有时我仍然会这样做。但黑客不会影响其他浏览器,因为它们是IE6特定的。我还没有使用浏览器特定的CSS文件的长度,导致我的IE6 hacks的范围大约是~1500行的CSS中的10行。我修改过的“支持”IE6的CSS仍然在Firefox中完全符合标准。

编辑:感谢Rob的评论我将把我的doctype改为“HTML 4.01 Strict with system identifier”(提供的测试表明它没有破坏任何东西)。维基百科上的Quirks Mode图表显示我当前的doctype(带有系统标识符且没有XML声明的XHTML 1.1)会产生相同的渲染模式。

但我上面说的一切仍然适用。我在最新版本的Firefox中编写了符合标准的代码(Web Developer附加组件是我的朋友),然后在不破坏Firefox标准兼容性的情况下“使IE工作”。