繁体   English   中英

针对有条件评论的IE8会有效吗?

[英]Will targeting IE8 with conditional comments work?

当IE8发布时,以下代码是否可以添加条件样式表?

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

我读过有关这是否适用于测试版的相互矛盾的报告。 我希望有人可以分享他们的经验。 谢谢。

有一点需要注意:

它确实有效, 如果您正在加载页面/站点本地网络(例如Intranet) ,它将默认加载到IE7模式 (更新- 本地主机 [*]是一种特殊的情况下,这在标准模式渲染)

这违反了MSFT默认的STANDARDS原始声明。

例如

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);

它对我有用 - 无论是怪异模式还是标准合规模式。 然而,切换到IE8的兼容模式,当它工作。

工具/兼容性视图设置

取消所有这些

谢谢您的帮助。 我发现了解决方案,显然问题是每个样式表都使用自己的title属性。 一旦我把标题从主要样式表中删除,没有概率。

这是IE8独有的一个奇怪的问题 - 虽然我被告知它应该以这种方式工作,但与“样式表首选项”有关 - 它只会产生问题,因为解决方案要求你删除标题,这可能会有所帮助脚本等时 - 当你需要调用样式表时。

在任何情况下,不确定这是一个错误,或者它应该是那样,但我希望微软进一步调查。

谢谢

为什么甚至打扰为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-only css中我只有一个最重要的规则,其余的几乎就像firefox一样,虽然那不会让我离开FF无论如何!

就我而言,我想使用css使用圆形边框。 Vista上的IE8不支持此类。 而且由于图形使得圆形边框也显示出漂亮的圆形阴影,因此IE8中的页面看起来很糟糕。

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

然后我看一下将它置于怪癖/兼容模式,然而,这仍然不起作用,因为我使用的CSS黑客不再适用于IE8。

最后但至少我找到了一个有效的CSS hack,它将在兼容模式下正确呈现页面。

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

现在,我不知道这是否适用于IE7或更低版​​本,因此您希望支持的每个IE版本至少有三种不同的黑客攻击,即ee

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

我想知道Internet Exploiter的下一次回归对我们来说会是什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM