IE10 之前的 IE 版本只有一个 Quirks Mode。此模式现在称为IE10 及更高版本中的IE5 Quirks 。
IE10 引入了第二种 Quirks 模式,它简称为Quirks。
这两种模式都将渲染模式更改为使用旧的“怪癖”框模型,以及其他布局更改。这一点在他们之间是一致的。
最初的 Quirks 模式基本上是模仿 IE5 的向后兼容模式。正因为如此,除了改变盒子模型等之外,它还禁用了自 IE5 以来引入的大部分浏览器功能——因此在这种模式下,没有任何新的 HTML5 功能将起作用。
较新的 Quirks 模式使用与旧的 Quirks 模式相同的渲染规则,但不会禁用所有浏览器功能。
这就是它们之间的基本区别。
然后可以问这个问题,为什么要同时使用两种模式?
答案是其他浏览器(例如 Chrome)也有一个 Quirks 模式,当页面没有文档类型时会触发(就像 IE)。但是其他浏览器从来没有像 IE 那样为了向后兼容而禁用它们的任何功能。
结果是,即使在基本呈现规则相同的情况下,在 IE 中处于 quirks 模式的站点与其他浏览器相比可能看起来完全不同。
因此,IE 引入了更新的 quirks 模式,以提高 quirks 模式下站点的跨浏览器兼容性。
但结果是,较新的 quirks 模式将呈现一些与旧 quirks 模式不同的页面,因此仍然需要旧的,以便 MS 支持为其编写网站的用户。
最终,如果可能的话,应该避免使用怪癖模式(其中任何一种)。尽管微软通过引入额外模式付出了跨浏览器的努力,但当您处于怪癖模式时,浏览器之间仍然存在重大差异。
最佳实践是尽可能使用标准模式。
无论如何都应该不需要 Quirks 模式:如果您需要 Quirks 模式框模型,可以使用 CSS 在标准模式下访问它box-sizing:border-box
。