当 IE8 发布时,以下代码是否可以添加条件样式表?
<!--[if IE 8]>
<link rel="stylesheet" type="text/css" href="ie-8.0.css" />
<![endif]-->
我已经阅读了关于这是否适用于测试版的相互矛盾的报告。我希望有人可以分享他们的经验。谢谢。
当 IE8 发布时,以下代码是否可以添加条件样式表?
<!--[if IE 8]>
<link rel="stylesheet" type="text/css" href="ie-8.0.css" />
<![endif]-->
我已经阅读了关于这是否适用于测试版的相互矛盾的报告。我希望有人可以分享他们的经验。谢谢。
需要注意的一件事:
它确实有效,但是如果您正在加载页面/站点本地网络(例如 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);
它对我有用——无论是在怪癖模式还是在标准合规模式下。但是,切换到 IE8 兼容模式时它不起作用。
工具/兼容性视图设置
取消选中它们
感谢您的帮助。我发现了解决方案,显然问题是让每个样式表都使用自己的标题属性。一旦我从除主样式表之外的所有标题中删除了标题,就没有问题了。
这是 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-to-behave-like-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 不会评估 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 的下一次回归会为我们带来什么。