将IE8与条件注释一起使用是否有效?
释放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的下一次回归会给我们带来什么。