兼容模式的IE问题

时间:2015-11-18 15:55:18

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

我想知道当我将浏览器置于兼容模式时,它如何知道在文档中找到的标头标签中使用的设置。如果我们将所有版本的逻辑都恢复到EI7,它会使用最远的版本吗?所以在这种情况下,它在comp模式下选择7,但是如果我们只提供回IE8,那么它会为该实例选择IE8吗?所以问题是,为什么IE 11兼容模式根据IE中的调试器将其设置为IE7标准?如果我删除了[if IE7]代码片段,那么它会在浏览器中将其设置为IE8标准吗?我们只是放弃支持IE7,所以我问这个问题。

[if IE 7 ]>    <html class="ie7"
[if IE 8 ]>    <html class="ie8" 
[if IE 9 ]>    <html class="ie9"

2 个答案:

答案 0 :(得分:1)

您在问题中引用的代码告诉IE使用何种模式。这段代码的作用是查看IE已经存在的模式,并做出相应的反应。

因此,您的问题的答案是:否:从此代码中删除IE7特定的块不会阻止IE进入IE7模式。

如果您想强制IE进入特定模式,您需要使用的代码是X-UA-Compatible元标记。

您需要一条靠近HTML顶部的行,如下所示:

<meta http-equiv="X-UA-Compatible" content="IE=edge">

在内容中放置edge告诉IE使用它的最佳可用模式(因此IE11将处于IE11模式)。如果您想要特定的IE模式,请添加IE8或类似内容而不是edge

答案 1 :(得分:1)

此外,查看页面的方式也会影响文档模式。

  • 如果您在Internet上(或通过本地Web浏览器)查看页面,则该页面将在Internet区域中打开。在这种情况下,x-ua-compatible指令优先;根据设置,<DOCTYPE>可能also have an impact
  • 如果使用“文件”菜单,“文件资源管理器”或网络路径打开页面,则会在“Intranet”区域中打开该页面。默认情况下,这意味着您的页面在IE7兼容模式下打开,但可以是changed through settings
  • 托管webBrowser控件的应用默认为IE7,除非您使用registry change覆盖它。 (注意,目前还不清楚Windows 10是否支持此功能。)

为获得最佳效果:

  1. 使用HTML5 <DOCTYPE>指令。
  2. 使用内容设置为x-ua-compatible的{​​{1}}元。
  3. 通过本地网络浏览器查看本地网页。
  4. HTML5代码,检测功能,提供优雅的后备功能,并且不用担心各个浏览器之间的个别差异。
  5. 希望这会有所帮助......

    - Lance