Internet explorer 什么';这是';怪癖模式';和';兼容模式';在IE里?

Internet explorer 什么';这是';怪癖模式';和';兼容模式';在IE里?,internet-explorer,quirks-mode,ie-compatibility-mode,Internet Explorer,Quirks Mode,Ie Compatibility Mode,我以为他们是一样的,只是我刚刚发现他们不是 使用IE8,我可以以3种不同的方式显示相同的网页: 标准模式。XHTML严格DOCTYPE位于网页顶部 除了在IE8中单击“兼容模式”之外,与上面相同。现在网页显示有点奇怪 如果我从网页中删除DOCTYPE(这将强制使用怪癖模式?)。现在网页显示非常糟糕,与在“兼容模式”下查看时不一样。在这一点上,单击“兼容性模式”没有任何区别 ie8中的兼容模式按钮通常会再现通过ie7浏览器查看网页的效果,这意味着如果存在doctype,它会将文档模式设置为ie7标

我以为他们是一样的,只是我刚刚发现他们不是

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

  • 标准模式。XHTML严格DOCTYPE位于网页顶部

  • 除了在IE8中单击“兼容模式”之外,与上面相同。现在网页显示有点奇怪

  • 如果我从网页中删除DOCTYPE(这将强制使用怪癖模式?)。现在网页显示非常糟糕,与在“兼容模式”下查看时不一样。在这一点上,单击“兼容性模式”没有任何区别


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

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


    这里有一个页面,它描述了internet explorer中文档模式的混乱程度,比我所能描述的要清楚得多。

    怪癖模式基本上是一种IE5兼容模式。它是由没有有效的
    声明触发的。其主要效果是,它会导致浏览器使用IE5长方体模型,这意味着所有填充、边距和边框以及影响长方体大小的任何其他内容都将不正确

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

    也可以在“开发人员工具”窗口中显式指定这两种工具

    兼容性模式对于测试(因为IE7没有开发人员工具窗口)和企业内部网站点有时很有用,因为在这些站点中,公司的成本太低,无法更新代码以适应较新的浏览器。(尽管如此,兼容模式并不是IE7的完全复制品;它有自己的bug和问题,因此对于大多数测试,最好还是使用IE7的真实副本)


    不得使用怪癖模式。哪些头脑正常的人希望与IE5兼容?

    哪些头脑正常的人希望与IE5兼容=>我的公司在未来的几年中一直处于IE5模式。此外,内存泄漏将困扰您的web应用程序。