CSS技巧*+ html做什么?

kub*_*uba 13 html css css-selectors

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

* + html {
    /.../
}
Run Code Online (Sandbox Code Playgroud)

我知道什么*+做什么,但我不明白什么是具有这种结构的意义呢?

我也发现了这个:

* html {
    /.../
}
Run Code Online (Sandbox Code Playgroud)

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

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

kea*_*ine 14

这些是Internet Explorer的CSS黑客攻击.

更多信息请访问:http://dimox.net/personal-css-hacks-for-ie6-ie7-ie8/


Rau*_*nto 12

根据W3C选择器定义,"E + F"定义为:

匹配紧跟在兄弟元素E之前的任何F元素.

你提到了代码:

* + html

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

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

换句话说,这是针对IE7的CSS攻击.

另一种方法是使用条件注释:

<!--[if lte IE 7]> <html class="ie7"> <![endif]-->  
Run Code Online (Sandbox Code Playgroud)

HTH

  • 阿门有条件的评论.*略微暗淡的微软魔法* (2认同)