发布IE8时,以下代码是否可以添加条件样式表?
<!--[if IE 8]>
<link rel="stylesheet" type="text/css" href="ie-8.0.css" />
<![endif]-->
我读过有关这是否适用于测试版的相互矛盾的报告。我希望有人可以分享他们的经验。感谢。
答案 0 :(得分:22)
有一点需要注意:
如果您正在加载页面/网站 本地网络(例如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]在评论here on the IE Blog中指出,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);
答案 1 :(得分:14)
它对我有用 - 无论是在怪癖模式还是在标准合规模式下。但是,当切换到IE8兼容模式时,它不工作。
答案 2 :(得分:3)
工具/兼容性视图设置取消选中所有
答案 3 :(得分:0)
感谢您的帮助。我发现了解决方案,显然问题是每个样式表都使用自己的title属性。一旦我把标题从主要样式表中删除,没有概率。
这是IE8独有的奇怪问题 - 虽然我被告知它应该以这种方式工作,但与“样式表首选项”有关 - 它只会产生问题,因为解决方案要求你删除标题在编写脚本等时可能会有所帮助 - 当你需要调用样式表时。
在任何情况下,不确定这是否是一个错误,或者它应该是那样,但我希望微软进一步调查。
由于
答案 4 :(得分:0)
为什么还要为IE8编写单独的样式表?
如果您已经针对IE7进行了调试,则可以强制IE8进入兼容模式,从而显示您的代码,就好像IE8是IE7一样。
你要做的就是把它放在开头标签下面。在其他地方,它将无法正常工作。
然后,每个项目的平均工作时间减少了半小时,不需要对IE8进行强烈的调试!
即使Msn.com这样做 - 有点讽刺,是吗?
答案 5 :(得分:0)
.niceclass {some:properties;more:properties;}
如果我更改了
,它只能 .parentclass .niceclass {some:properties;more:properties;}
或
#parentselector .niceclass {some:properties;more:properties;}
答案 6 :(得分:0)
就我而言,我想使用css使用圆形边框。 Vista上的IE8不支持此类。而且由于图形是圆形的边框也会显示出漂亮的圆形阴影,因此IE8中的页面看起来很糟糕。
我尝试使用条件注释,但无济于事,IE8不会评估if IE表达式,因此不会包含外部样式表。
然后我看一下将它置于quirks / compatibleblity模式,然而,这仍然不起作用,因为我使用的CSS hacks不再适用于IE8。
最后但至少我找到了一个有效的CSS hack,它将在兼容模式下正确呈现页面。
* + html #test[id] { color:lime }
现在,我不知道这是否适用于IE7或更低版本,因此您将至少有三个 您希望支持的每个IE版本都有不同的黑客,例如
* + html #test,
html+body #test,
* html body #test
{ color:lime }
我想知道Internet Exploiter的下一次回归将会给我们带来什么。