IE 中“quirks mode”和“compatibility mode”的区别是什么?

10

我原以为它们是相同的东西,但我刚刚发现它们不一样!

使用IE8,我可以以3种不同的方式显示同一个网页:

  1. 标准模式。XHTML Strict DOCTYPE位于网页顶部。

  2. 与上述方式相同,只是在IE8中点击了“兼容性模式”。此时网页显示略微怪异。

  3. 如果我从网页中删除DOCTYPE(这会强制进入quirks模式?)。此时网页显示非常糟糕,并且与在“兼容性模式”下查看的内容不同。此时点击“兼容性模式”无济于事。

2个回答

12

Quirks模式基本上是IE5兼容模式。它的触发条件是没有有效的<!DOCTYPE>声明。主要影响是导致浏览器使用IE5的盒子模型,这意味着所有的填充、边距和边框,以及任何影响盒子大小的东西都会不正确。

兼容模式是IE7兼容模式(IE9还有IE8兼容模式),可以通过指定页面使用meta标签或用户浏览器配置来触发。

两者也可以在开发工具窗口中明确指定。

兼容模式偶尔用于测试(因为IE7没有开发工具窗口)和内部网站,其中公司过于吝啬以至于不能更新他们的代码以适应更新的浏览器。(但话说回来,兼容模式并非IE7的完全副本;它有自己的bug和问题,所以对于大多数测试,最好坚持使用真正的IE7副本。)

不应该使用Quirks模式。谁在正常情况下想要与IE5兼容呢?


谁会想要与IE5兼容呢?我的公司将长期停留在IE5模式中。此外,内存泄漏将困扰您的Web应用程序。 - Alex Nolasco

1

IE8中的兼容性模式按钮通常会复制通过ie7浏览器查看网页的效果,这意味着如果存在文档类型,则将文档模式设置为IE7标准,否则将文档模式设置为IE5(或quirks模式)。

因此(假设没有覆盖正常行为的元标记),在情况1中,页面以ie8模式显示,在情况2中以ie7模式显示,在情况3中,无论是否使用兼容性视图,都是IE5(quirks模式)。

这里有一个页面 - http://www.nczonline.net/blog/2010/01/19/internet-explorer-8-document-and-browser-modes/,它比我更清楚地描述了Internet Explorer文档模式的混乱局面...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接