当 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 /

与IE7相比,IE8渲染得相当不错,我有IE6,IE7和IE8的样式表;起初我认为有条件的评论在经过一些实验后不适用于IE8我发现一些规则并没有被IE8应用,只是因为我需要先把祖先或父类放在首位,例如 我有一个像

这样的课程

.niceclass {some:properties; more:properties;}

如果我更改了

,它只能

.parentclass .niceclass {some:properties; more:properties;}

#parentselector .niceclass {some:properties; more:properties;}

在我的IE8-only css中,我只有一个最重要的规则,其余部分几乎就像firefox一样,虽然那不会让我离开FF吧。

就我而言,我想使用 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 }

我想知道互联网剥削者的下一次回归将为我们带来什么。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top