IE7非常不幸的认为HTML注释也是真实的DOM元素,所以如果你在错误的地方使用注释,IE7将会把它当作兄弟计算在内,而你设定的选择器将不会
另外一个知道的兄弟选择符问题,除了opera 9外的所有浏览器,当额外元素是经script增加的,它们不会解释基于样式表的兄弟选择符。所以如果你用script在
额外介绍下:first-child伪类
IE7新
我们认识到使用:first-child比仅使用兄弟选择符来的简单。但在怎样获得赞扬或是用:first-child伪类选择器替换它之前,我们希望大家同样认识到兄弟选择符是怎么独立运用的。
比较下面的代码,使用:first-child简单许多。
使用 :first-child之前
div>div>div+p a {color: red;}
div>div>div+p a+a {color: blue;}
使用 :first-child...
div>div>div+p a:first-child {color: red;}
:first-child确实让工作简单许多!不需要另外规则改变样式,只要记住当使用:first-child,它只作用于第一个子部first child。没有其他兄弟元素被选择,所以我们还需要兄弟选择符的才干。
我们可不可以使用兄弟和子选择符联合:first-child?当然可以,子选择符看起来没有
IE的问题
IE7似乎有一个问题,当兄弟选择符比:first-child在选择器中来的晚,IE7顺从兄弟选择符。这个情况也在其他浏览器有,但IE7显然不能处理相关的复杂性。这看来不够完美,不过至少IE7支持简单适度的联合结构,或许现在就可。
所以脑袋里记住,作为兄弟选择符,IE7将会考虑第一个链接前面的html注释为元素节点,而且IE7会选择注释代替,甚至你使用a:first-child都没用。IE7不关心:first-child伪类前面的"a",它仍然坚持选择注释(注释和第一个链接在同一个容器而且在链接前面)。所以当你使用注释和高级CSS选择器要清楚了解真相。
结论
我们希望这篇文章没有给你们带来困惑,当支持更多选择符时了解更多可以用到的可能性样式。这在IE7大规模