1

最近我遇到了 HTML5 Boilerplate 并喜欢它!但是,其中有一部分我不明白。

<!--[if lt IE 7 ]> <html class="ie6"> <![endif]-->
<!--[if IE 7 ]>    <html class="ie7"> <![endif]-->
<!--[if IE 8 ]>    <html class="ie8"> <![endif]-->
<!--[if IE 9 ]>    <html class="ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html class=""> <!--<![endif]-->

Paul Irish 说我们可以使用它来代替 Conditional stylesheets 和 CSS hacks。有没有人有这方面的经验,就像我阅读他的博客一样多次,我仍然无法理解它。

现在我正在使用 CSS3 媒体查询,但它在 IE 中根本不起作用,我只是一个幸运的,CSS3-mediaqueries.js 文件(或类似的文件)和 response.js 文件只是不工作我。所以我决定条件注释或特定样式表适合我,但我记得这个设置但真的不知道如何使用它。

任何帮助深表感谢!

4

1 回答 1

1

正如您所推测的,这些就是所谓的条件注释。它们根本不是任何标准的一部分。

它们是 IE 所做的一件有趣的事情——它实际上解析了应该是非活动数据的文本!但它应该工作。

您使用它的方式很简单:如果您使用的是 IE < 7,那么您将blah元素样式设置为.ie6 blah. 一个更具体的例子:假设您希望您的超链接在用户使用 IE8 时为红色,否则为绿色。这是一些CSS:

a {
    color: green;
}

.ie8 a {
    color: red;
}

由于“a是具有类的元素的后代ie8”比“任何a”更具体,因此后者适用并且在 IE8 中链接将是红色的。此逻辑仅适用于 IE8,因为这是 IE8 的条件注释被解释为 HTML 的一部分(而不是被注释掉)的唯一情况。

唯一可能令人困惑的一点是最后一行,您在注释块--> 有一个:这意味着完全忽略条件注释的浏览器仍然会在最后一个块中看到 HTML(以及 IE > 9 和非IE-but-still-interpreting-conditional-comments 浏览器)。

于 2012-02-05T04:30:54.143 回答