【问题标题】:What's the difference between 'quirks mode' and 'compatibility mode' in IE?IE中的“怪癖模式”和“兼容模式”有什么区别?
【发布时间】:2011-10-07 13:01:53
【问题描述】:

我以为它们是一样的,但我发现它们不是!

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

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

  2. 除了在 IE8 中单击“兼容模式”外,其他与上述相同。现在网页显示有点奇怪。

  3. 如果我从网页中删除 DOCTYPE(这会强制使用 quirks 模式吗?)。现在网页显示非常糟糕,与在“兼容模式”下查看时不一样。此时点击“兼容模式”没有任何区别。

【问题讨论】:

    标签: internet-explorer quirks-mode ie-compatibility-mode


    【解决方案1】:

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

    兼容模式是一种 IE7 兼容模式(IE9 也有 IE8 兼容模式),由指定页面应使用它的元标记或用户的浏览器配置触发。

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

    兼容模式有时可用于测试(因为 IE7 没有开发人员工具窗口)以及公司成本太低而无法更新代码以适应较新浏览器的 Intranet 站点。 (但话虽如此,兼容模式不是 IE7 的精确复制品;它有自己的错误和问题,因此对于大多数测试,您最好坚持使用真正的 IE7 副本)

    永远不应该使用 Quirks 模式。有谁会想兼容 IE5?

    【讨论】:

    • 有正常思维的人会希望与 IE5 兼容=> 我的公司在未来几年都陷入了 IE5 模式。此外,内存泄漏会困扰您的 Web 应用程序。
    【解决方案2】:

    ie8 中的兼容模式按钮通常再现通过 ie7 浏览器查看网页的效果,这意味着如果存在 doctype,它将文档模式设置为 IE7 标准,否则将文档模式设置为 IE5(或 quirks 模式)。

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

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

    【讨论】:

      最近更新 更多