3

我已经看到了一些与我的问题相关的答案,但似乎无法解决问题。

我正在尝试根据 Paul Irish Boilerplate 使用条件注释来定位 IE,即

<!--[if lt IE 7 ]> <body class="ie6"> <![endif]--> 
<!--[if IE 7 ]>    <body class="ie7"> <![endif]--> 
<!--[if IE 8 ]>    <body class="ie8"> <![endif]--> 
<!--[if IE 9 ]>    <body class="ie9"> <![endif]--> 
<!--[if gt IE 9]>  <body> <![endif]-->
<!--[if !IE]><!--> <body> <!--<![endif]-->

Doctype 是“过渡的”。

我正在本地服务器上测试一个站点并查看 IE8 中的开发人员工具栏,放置在主体上的类是“ie7”

经过调查后,我正在使用以下内容尝试以 IE8 标准模式进行渲染,希望放在主体上的类是“ie8”

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

它不起作用。我还用这里的 JS告诉我 IE8 处于什么模式。它说的是 IE8 标准模式。

知道如何让 IE8 主体上的课程阅读“ie8”吗?或者至少,不像现在那样“ie7”。

或者只是不可能在本地服务器上进行此测试,这意味着我必须将它放在实时服务器上,然后才能进行我想要的更改?这似乎有点疯狂......

谢谢

4

3 回答 3

4

如果您使用的是本地服务器,您可能处于 IE8 兼容模式。这是本地站点的默认设置。

要检查点击 F12 并且应该加载开发人员工具栏。它将显示您正在使用的浏览器模式和文档模式。IE8 应该同时显示。

您可以通过单击“工具”>“兼容性视图设置”禁用默认行为,并更改“以兼容模式显示 Intranet 站点”设置。

于 2011-05-11T07:51:55.350 回答
1

根据此页面:“请注意,IE8 在兼容性视图中声称为 7”

如果 JQuery 的优秀人员似乎无法解决这个问题,那么我认为答案可能是否定的。:/

于 2011-05-11T07:08:24.020 回答
1

如果 IE8 处于 IE7 模式,则浏览器将自己报告为 IE7 是正确的;毕竟,IE7 模式的目的是完全按照 IE7 的方式呈现页面,所以如果你在做浏览器检测,你会希望被告知它是 IE7,因为这是你必须处理的 IE7 行为( IE8 的 IE7 模式存在 bug,与真正的 IE7 不太一样,这完全是另一个话题)。

您似乎想要的是 IE8 实际上处于 IE8 模式。这是一件合理的事情!

你说你正在使用:

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

你有没有试过这个:

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

'edge' 告诉 IE 使用它拥有的最新渲染引擎,这应该会强制 IE8 进入正常的 IE8 模式。也许这比告诉 IE8 模仿自己更好?

顺便说一句,如果您在本地网络中的计算机上遇到问题,而 IE8 在您不期望的情况下回退到 IE7 模式,请注意 IE8 中有一个配置设置指定“始终使用 IE7 模式内联网网站”。微软提供了此功能,以帮助自定义编写的 Intranet 站点向后兼容,这些站点没有很好地升级到 IE8,但坦率地说,它带来的麻烦比它节省的更多。如果这是问题所在,并且您无法通过其他任何方式解决,您可能会发现最简单的答案就是转到网络上的所有机器并更改配置设置(当然取决于您的网络大小! )。

于 2011-05-11T07:57:08.787 回答