CSS技巧* + html做什么?

时间:2013-06-27 08:10:57

标签: html css css-selectors

在我合作的项目中,我发现了很多这样的规则:

* + html {
    /.../
}

我知道*+做了什么,但是我不明白这个结构是什么意思?

我也发现了这个:

* html {
    /.../
}

我找不到任何适用这些地方的地方。

AFAIK html每页都是唯一的,那么为什么不简单地使用html选择器呢?这有点神奇吗?

2 个答案:

答案 0 :(得分:14)

这些是针对Internet Explorer的CSS黑客攻击。

此处提供更多信息:http://dimox.net/personal-css-hacks-for-ie6-ie7-ie8/

答案 1 :(得分:12)

根据W3C Selectors definition,“E + F”定义为:

  

匹配前面有兄弟元素E的任何F元素。

您提到了代码:

* + html

这应该匹配任何其他元素之后的html标记。但是html元素是html页面的第一个元素(根元素)。因此,在html标记之前没有元素(即HTML标记),规则与任何元素都不匹配。

至少,对于任何正确实现标准的浏览器。 “问题”是,IE7没有正确实现它并应用规则。

换句话说,这是针对IE7的CSS黑客攻击。

另一种方法是使用条件评论:

<!--[if lte IE 7]> <html class="ie7"> <![endif]-->  

HTH