0

我想知道当我将浏览器置于兼容模式时,它如何知道从文档中找到的标题标签中使用什么设置。如果我们有所有版本的逻辑回溯到 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"
4

2 回答 2

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.

于 2015-11-18T16:17:13.647 回答
1

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

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

为获得最佳效果:

  1. 使用 HTML5<DOCTYPE>指令。
  2. 使用x-ua-compatible内容设置为IE=edge.
  3. 通过本地网络浏览器查看本地页面。
  4. HTML5 代码,检测功能,提供优雅的回退,并且更少担心各个浏览器之间的个体差异。

希望这可以帮助...

——兰斯

于 2015-11-18T16:42:38.867 回答