兼容模式的 IE 问题
IE issue with compatibility modes
我想知道当我将浏览器置于兼容模式时,它如何知道要使用文档中找到的 header 标签的设置。如果我们有所有版本回溯到 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"
您在问题中引用的代码 NOT 告诉 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
.
此外,您查看页面的方式也会影响文档模式。
- 如果您在 Internet 上(或通过本地 Web 浏览器)查看页面,该页面将在 Internet 区域中打开。在这种情况下,
x-ua-compatible
指令优先;根据设置,<DOCTYPE>
可能 also have an impact.
- 如果您使用“文件”菜单、从文件资源管理器或从网络路径打开页面,该页面将在 Intranet 区域中打开。默认情况下,这意味着您的页面以 IE7 兼容模式打开,尽管可以是 changed through settings.
- 托管 webBrowser 控件的应用程序默认为 IE7,除非您使用 registry change 覆盖它。 (请注意,目前尚不清楚 Windows 10 是否支持此功能)。
为了获得最佳效果:
- 使用 HTML5
<DOCTYPE>
指令。
- 使用内容设置为
IE=edge
的 x-ua-compatible
元数据。
- 通过本地网络浏览器查看本地页面。
- HTML5 的代码,检测功能,提供优雅的回退,并且不用担心各个浏览器之间的个体差异。
希望这对您有所帮助...
-- 兰斯
我想知道当我将浏览器置于兼容模式时,它如何知道要使用文档中找到的 header 标签的设置。如果我们有所有版本回溯到 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"
您在问题中引用的代码 NOT 告诉 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
.
此外,您查看页面的方式也会影响文档模式。
- 如果您在 Internet 上(或通过本地 Web 浏览器)查看页面,该页面将在 Internet 区域中打开。在这种情况下,
x-ua-compatible
指令优先;根据设置,<DOCTYPE>
可能 also have an impact. - 如果您使用“文件”菜单、从文件资源管理器或从网络路径打开页面,该页面将在 Intranet 区域中打开。默认情况下,这意味着您的页面以 IE7 兼容模式打开,尽管可以是 changed through settings.
- 托管 webBrowser 控件的应用程序默认为 IE7,除非您使用 registry change 覆盖它。 (请注意,目前尚不清楚 Windows 10 是否支持此功能)。
为了获得最佳效果:
- 使用 HTML5
<DOCTYPE>
指令。 - 使用内容设置为
IE=edge
的x-ua-compatible
元数据。 - 通过本地网络浏览器查看本地页面。
- HTML5 的代码,检测功能,提供优雅的回退,并且不用担心各个浏览器之间的个体差异。
希望这对您有所帮助...
-- 兰斯