【问题标题】:What's the difference between IE 10's "Quirks" and "Internet Explorer 5 Quirks" modes?IE 10 的“Quirks”和“Internet Explorer 5 Quirks”模式有什么区别?
【发布时间】:2013-10-18 06:59:01
【问题描述】:

Quirks ModeInternet Explorer 5 quirks 在 IE10 开发者工具、JavaScript 和 CSS 方面有什么区别?

这两种模式中的哪一种可以从 HTML 触发(与开发工具相反)?

我在 MSDN 上阅读了this blog post,但无法理解这种 IE5 怪癖模式何时可以在现实世界的网站上发挥作用。它说他们所要做的就是不包括文档类型浏览器必须在兼容性视图中。后者是手动启用还是通过 HTML 或什么启用?

我是插件作者,我担心其他人的插件因文档/浏览器模式而损坏。

【问题讨论】:

  • @brandonjordan:他们还有更好的工具来查看您的网站在 IE 上的外观吗?
  • @brandonjordan,有时这不是“什么更好”的问题,而是“需要什么”的问题......不幸的是,有些东西在其他浏览器中无法正常工作......另外,如果你'正在构建网站,您应该让您的网站与尽可能多的浏览器兼容。我根本看不出您的评论对 OP 问题有效...
  • @brandonjordan,谈谈无用的评论。您实际上是在做 Web 开发还是只是对做 Web 开发的人进行攻击?
  • 这是一个毫无意义的论点。让我们继续帮助@katspaugh

标签: javascript css internet-explorer internet-explorer-10 quirks-mode


【解决方案1】:

IE10 之前的 IE 版本只有一个 Quirks Mode。这种模式现在在 IE10 及更高版本中称为 IE5 Quirks

IE10 引入了第二种 Quirks 模式,它简称为 Quirks

这两种模式都会更改渲染模式以使用旧的“怪癖”框模型,以及其他布局更改。这一点在他们之间是一致的。

最初的 Quirks 模式基本上是一种向后兼容模式,以模仿 IE5。正因为如此,除了改变盒子模型等之外,它还禁用了自 IE5 以来引入的大部分浏览器功能——所以在这种模式下,HTML5 的新功能都不起作用。

较新的 Quirks 模式使用与旧的 Quirks 模式相同的渲染规则,但不会禁用所有浏览器功能。

这是它们之间的基本区别。

然后可以问为什么要同时使用两种模式?

这个问题的答案是其他浏览器(例如 Chrome)也有一个 Quirks 模式,当页面没有 doctype 时会触发(就像 IE)。但其他浏览器从未像 IE 那样为了向后兼容而禁用任何功能。

结果是,与其他浏览器相比,处于 quirks 模式的网站在 IE 中看起来可能完全不同,即使基本呈现规则相同。

因此,IE 引入了更新的 quirks 模式,以提高 quirks 模式下网站的跨浏览器兼容性。

但结果是,较新的 quirks 模式会呈现与旧 quirks 模式不同的某些页面,因此 MS 仍需要较旧的模式来支持为其编写网站的用户。

如果可能的话,最终应该避免使用怪癖模式(其中任何一种)。尽管 MS 通过引入额外模式付出了跨浏览器的努力,但当您处于 quirks 模式时,浏览器之间仍然存在重大差异。

最佳做法是尽可能使用标准模式。

无论如何都应该不需要 Quirks 模式:如果您需要 Quirks 模式框模型,可以使用 CSS box-sizing:border-box 在标准模式下访问。

【讨论】:

  • 让微软在同一个浏览器中包含两种不同的 Quirks 模式......真是一团糟!
  • @daGUY:他们总是这样做:添加新内容,但保留现有功能以支持旧用户。你可以抱怨,但有人依赖它。反其道而行之也可能是坏事。谷歌就是一个很好的例子:即使他们仍然拥有庞大的用户群,他们也以经常弃用功能(甚至停止整个产品)而闻名。我敢肯定,在这两个极端之间可能会有一个快乐的媒介,但是因为采取保守的方法而抨击 MS 并不公平。怪癖模式可能有,但你不必使用它。
  • @daGUY: 如果你把'Almost Standards' mode 算作怪癖模式,那么至少 IE 不是第一个在同一个浏览器中包含两种不同怪癖模式的浏览器。开放标准往往是混乱的。
  • 太好了,谢谢!如何启用一种模式或另一种模式呢?我做了一些测试,似乎当您删除文档类型时,IE 报告它处于兼容性 Browser 模式,但同时处于标准 Document 模式。如果您包含 http-equiv 元标记,则表示它处于 IE5 怪癖模式。令人困惑。
  • 如何触发两种quirks模式:IE10默认只有在你错过doctype时才会使用新的Quirks模式。旧的 Quirks 模式必须使用X-UA-CompatibleIE=5显式地 加载。它也可以从兼容模式触发。如果您的站点默认为兼容模式(即通过 Intranet 设置),那么缺少的 doctype 将触发旧的怪癖模式,因为这是您告诉 IE 为“兼容”的旧 IE 版本会触发的模式和。这就是企业用户可以配置事物以保持使用相同模式而无需任何代码更改的方式。
猜你喜欢
  • 2014-02-03
  • 2011-09-11
  • 2010-12-10
  • 1970-01-01
  • 2014-03-16
  • 2016-07-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-30
相关资源
最近更新 更多