18

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

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

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

4

7 回答 7

22

需要注意的一件事:

它确实有效,但是如果您正在加载页面/站点本地网络(例如 Intranet),它将默认以IE7模式加载!(更新 - localhost [*] 是一种特殊情况,它以标准模式呈现)

这违背了 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 中的页面真正呈现的模式,您可以使用检查开发人员工具或使用此小书签代码(仅适用于 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);
于 2008-10-03T18:05:11.477 回答
14

它对我有用——无论是在怪癖模式还是在标准合规模式下。但是,切换到 IE8 兼容模式时它不起作用

于 2008-10-03T16:18:24.703 回答
3

工具/兼容性视图设置

取消选中它们

于 2009-03-20T15:05:09.537 回答
0

感谢您的帮助。我发现了解决方案,显然问题是让每个样式表都使用自己的标题属性。一旦我从除主样式表之外的所有标题中删除了标题,就没有问题了。

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

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

谢谢

于 2009-08-07T19:29:18.943 回答
0

为什么还要为 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-to-behave-like-ie7/

于 2009-11-16T21:52:14.557 回答
0

与 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!

于 2009-11-21T23:34:00.223 回答
0

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

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

然后我看了一下将其置于 quirks / compatiblity 模式,但是,这仍然不起作用,因为我使用的 CSS hack 不再适用于 IE8。

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

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

现在,我不知道这是否适用于 IE7 或更低版本,因此对于要支持的每个 IE 版本,您至少有三种不同的 hack,ee

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

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

于 2009-12-28T09:36:26.670 回答