使用条件注释定位 IE8 是否有效?
-
03-07-2019 - |
题
当 IE8 发布时,以下代码可以添加条件样式表吗?
<!--[if IE 8]>
<link rel="stylesheet" type="text/css" href="ie-8.0.css" />
<![endif]-->
我读过关于这是否适用于测试版的相互矛盾的报告。我希望有人可以分享他们的经验。谢谢。
解决方案
它适用于我&#8211;&nbsp;在怪癖模式和标准合规模式下。但是,当切换到IE8兼容模式时,它不工作。
其他提示
有一点需要注意:
如果您正在加载页面/网站 本地网络(例如Intranet) ,它确实有效, 但是 它默认加载 IE7 模式 ! (更新 - localhost [*]是一个特殊的例如, 以标准模式呈现)
这违反了MSFT默认的STANDARDS原始声明。
e.g。
http://127.0.0.1/mysite/mypage.php <-- IE8 by default (updated!)
http://localhost/mysite/mypage.php <-- IE8 by default (updated!)
http://machinename/mysite/mypage.php <-- IE7 by default
http://192.168.100.x/mysite/mypage.php <-- IE7 by default
http://google.com/ <-- IE8 by default
[*] - Scott Dickens [MSFT]在评论中指出在IE博客上,localhost是Intranet中的特殊场景(通常用于开发Internet站点),因此默认情况下将在标准模式下呈现。
要测试IE8中的页面实际呈现的模式,您可以使用检查开发人员工具或使用此bookmarklet代码(仅适用于IE8):
javascript:
var vMode=document.documentMode;
var rMode='IE5 Quirks Mode';
if(vMode==8){
rMode='IE8 Standards Mode';
} else if(vMode==7){
rMode='IE7 Strict Mode';
}
alert('Rendering in: '+rMode);
工具/兼容性视图设置取消选中所有
感谢您的帮助。我发现了解决方案,显然问题是每个样式表都使用自己的title属性。一旦我把标题从主要样式表中删除,没有概率。
这是IE8独有的奇怪问题 - 虽然我被告知它应该以这种方式工作,但与“样式表首选项”有关。 - 它只会产生问题,因为解决方案要求你删除标题,这在脚本编写等时很有用 - 当你需要调用样式表时。
在任何情况下,不确定这是否是一个错误,或者它应该是那样,但我希望微软进一步调查。
由于
为什么还要为IE8编写单独的样式表?
如果您已经针对IE7进行了调试,则可以强制IE8进入兼容模式,从而显示您的代码,就好像IE8是IE7一样。
你要做的就是把它放在开头标签下面。在其他地方,它将无法正常工作。
然后,每个项目的平均工作时间缩短了半小时,不需要对IE8进行强烈的调试!
即使Msn.com这样做 - 有点讽刺,是吗?
最近写了一篇关于它的博客文章: http://blog.sankhomallik.com/2009/11/16/stop-wasting-time-debugging-在-IE8-时 - 你 - 不要 - 有对或-GET-IE8对行为样IE7 /
.niceclass {some:properties; more:properties;}
如果我更改了
,它只能 .parentclass .niceclass {some:properties; more:properties;}
或
#parentselector .niceclass {some:properties; more:properties;}
就我而言,我想使用 css 来使用圆形边框。Vista 上的 IE8 不支持此类。由于图形的圆形边框也会显示出漂亮的圆形阴影,因此该页面在 IE8 中看起来很糟糕。
我尝试使用条件注释,但无济于事,IE8不会评估if IE表达式,因此不会包含外部样式表。
然后我尝试将其设置为怪异/兼容模式,但是,这仍然不起作用,因为我使用的 CSS hack 不再适用于 IE8。
最后但最重要的是,我发现了一个有效的 CSS hack,它可以在兼容模式下正确呈现页面。
* + html #test[id] { color:lime }
现在,我不知道这是否适用于IE7或以下,因此您至少有三种不同的黑客hacks,即您要支持的IE版本,EE,EE
* + html #test,
html+body #test,
* html body #test
{ color:lime }
我想知道互联网剥削者的下一次回归将为我们带来什么。