IE10开发者工具中的 Quirks Mode 和 Internet Explorer 5怪癖之间的区别是什么? CSS-明智?
这两种模式中的哪一种可以从HTML触发(而不是devtools)?
我在MSDN上阅读this blog post,但无法理解这个IE5怪癖模式何时可以在真实网站上运行。它说他们所要做的就是不包括doctype 和浏览器必须在兼容性视图中。后者是手动启用还是通过HTML启用?
我是插件作者,我担心其他人的插件会因文档/浏览器模式而崩溃。
答案 0 :(得分:7)
IE10之前的IE版本只有一个Quirks模式。此模式现在称为 IE5 Quirks 在IE10及更高版本中。
IE10推出了第二种Quirks模式,只需调用 Quirks 。
这两种模式都会将渲染模式更改为使用旧的“怪癖”框模型以及其他布局更改。这在他们之间是一致的。
原始Quirks模式基本上是一种向后兼容模式,可以模拟IE5。因此,除了更改盒子模型等之外,它还消除了自IE5以来引入的大多数浏览器功能 - 因此在这种模式下,新的HTML5功能都不起作用。
较新的Quirks模式使用与旧怪癖模式相同的渲染规则,但不会禁用所有浏览器功能。
这是他们之间的基本区别。
然后可以问这个问题,为什么要同时使用两种模式?
答案是其他浏览器(例如Chrome)也有Quirks模式,当页面没有doctype时会触发(就像IE一样)。但是其他浏览器从未禁用任何功能,以便以IE的方式实现向后兼容。
结果是,与其他浏览器相比,在怪异模式下的网站在IE中可能看起来完全不同,即使基本渲染规则相同也是如此。
因此,IE推出了新的怪癖模式,旨在改善怪异模式下网站的跨浏览器兼容性。
但结果是,较新的怪癖模式会使某些页面与旧的怪癖模式不同,因此仍然需要较旧的页面以便MS支持为其编写网站的用户。
最终,如果可能的话,应该避免使用怪癖模式(其中任何一种)。尽管MS通过引入额外模式引入了跨浏览器的努力,但当您处于怪癖模式时,浏览器之间仍存在重大差异。
最佳做法是尽可能使用标准模式。
无论如何都应该不需要Quirks模式:如果你需要Quirks模式盒模型,可以使用CSS box-sizing:border-box
在标准模式下访问它。