繁体   English   中英

使用条件注释时,IE8采用IE7的类名

[英]IE8 takes on class name of IE7 when using conditional comments

我看到了几个与我的问题有关的答案,但似乎无法解决问题。

我试图使用条件评论来按照保罗爱尔兰Boilerplate ie来定位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'。

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

谢谢

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

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

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

根据这个页面 :“请注意IE8在兼容性视图中声称是7”

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

如果IE8处于IE7模式,则浏览器将自己报告为IE7; 毕竟,IE7模式的目的是完全按照IE7的方式呈现页面,所以如果你正在进行浏览器检测,你会想要告诉它IE7,因为它是你必须处理的IE7行为(事实上,IE8的IE7模式存在漏洞,并且它与真正的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模式内联网网站“。 Microsoft已将此功能放在那里,以帮助向后兼容自定义编写的Intranet站点,这些站点没有很好地升级到IE8,但坦率地说,它会导致比保存更多的麻烦。 如果这是问题并且您无法以任何其他方式解决问题,您可能会发现最简单的答案就是转到网络上的所有计算机并更改配置设置(当然,这取决于您的网络规模! )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM