将IE8与条件注释一起使用是否有效?

时间:2020-03-06 15:05:03  来源:igfitidea点击:

释放IE8时,以下代码可用于添加条件样式表吗?

<!--[if IE 8]>
  <link rel="stylesheet" type="text/css" href="ie-8.0.css" />
<![endif]-->

我已经阅读了有关此功能是否适用于Beta的相互矛盾的报告。我希望有人可以分享他们的经验。谢谢。

解决方案

它对我有用-既有古怪模式又有标准合规性模式。但是,当切换到IE8兼容模式时,它不起作用。

需要注意的一件事:

确实可以,但是如果我们正在加载页面/站点本地网络(例如Intranet),则默认情况下它将以IE7模式加载! (update localhost [*]是一个特例,它确实以标准模式呈现)

默认情况下,这违反了MSFT的原始标准。

例如

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博客的此处评论中指出,本地主机是Intranet中的一种特殊情况(通常用于开发Internet站点),因此默认情况下将以"标准"模式呈现。

要测试IE8中的页面真正呈现的模式,可以使用检查开发人员工具或者使用此书签代码(仅在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特有的怪异问题,尽管有人告诉我它应该以这种方式工作,但是与"样式表首选项"有关的问题只能解决问题,因为该解决方案要求我们删除标题,这在编写脚本时可能会有所帮助,当我们需要调用样式表时。

无论如何,不​​确定这是否是错误,或者应该是那样,但是我希望Microsoft进行进一步调查。

谢谢

为什么还要为IE8编写一个单独的样式表呢?

如果我们已经针对IE7进行了调试,则可以强制IE8进入兼容模式,从而像IE8就是IE7一样显示代码。

我们所要做的就是将这个标签放在开头标签的正下方。其他任何地方都行不通。

然后,每个项目的平均工作量减少了半小时左右,因此无需为IE8进行大量调试!

甚至Msn.com都具有这种讽刺意味,是吗?

最近写了一篇关于它的博客文章:http://blog.sankhomallik.com/2009/11/16/stop-wasting-time-debugging-on-ie8-when-you-dont-have-to-or-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的CSS中,我只有一个优先规则,其余的渲染几乎就像是firefox,尽管那仍然不能使我离开FF!

就我而言,我想通过css使用圆角边框。 Vista上的IE8不支持此功能。并且由于图形是如此,使得圆角边框也将显示出漂亮的圆角阴影,因此该页面在IE8中看起来很糟糕。

我尝试使用条件注释,但无济于事,IE8不会评估IE表达式,因此不会包含外部样式表。

然后,我看了一下将其置于古怪/兼容模式下,但是,由于我使用的CSS hacks不再适用于IE8,因此这仍然不起作用。

最后但最不重要的一点是,我发现了一个有效的CSS hack,可以在兼容模式下正确呈现页面。

* + html #test[id] { color:lime }

现在,我不知道这是否适用于IE7或者更低版​​本,因此我们至少需要三个
我们要支持的每个IE版本的不同黑客,例如

* + html #test,
    html+body #test,
    * html body #test
    { color:lime }

我不知道Internet Exploiter的下一次回归会给我们带来什么。