2012-01-02 56 views
5

是下列鏈接相鄰的兄弟操作者在CSS

.a + .b + .c 

一個有效選擇器,用於c直接如下a類的兩個元件和b分別類的元件?它似乎在Chrome 16中工作。從標準中可以看出它應該起作用嗎?

+1

是的。 FF + Chrome + Safari + Opera + IE9 – noob 2012-01-02 15:30:31

+1

爲什麼你認爲使用多個組合器是非標準的?我們每天結合組合器(ha!):'nav> ul> li a'和相鄰的兄弟組合器是一個CSS2選擇器,它與孩子和後代組合器一起被標準化了很長時間。 – BoltClock 2012-01-02 16:51:32

+1

@micha:不妨從IE中取出版本號,現在IE6對大多數人來說已經不復存在了。 – BoltClock 2012-01-02 16:59:00

回答

5

據我所知,它適用於我,並且是標準配置。 (從來沒看見過相反)

例子:http://jsfiddle.net/6ykxB/

如果只是利用最後相鄰選擇,這將仍然工作

.z + .b + .c

,但它不會

示例2:http://jsfiddle.net/6ykxB/1/

SitePoint上的引用提及了m ultiple相鄰同胞選擇,進一步證實它們是標準:

http://reference.sitepoint.com/css/adjacentsiblingselector

然而,存在用於與:hover元件和多個選擇一個警告:

Safari瀏覽器(最多且包括4個版本)和Chrome(最多包括 版本3)在相鄰選擇器前面有 使用hover僞類的元素時表現爲「buggily」。該錯誤在 版本之間有所不同,但該規則根本不適用,或者應用 不一致。

+2

即使在最新版本中使用':hover'時,WebKit仍然會遇到相鄰和一般兄弟組合器的問題,所以我們仍然要小心。然而,這與多個組合器的用法無關:':hover'是一個僞類,而不是一個組合器。即使只有一個'+'或'〜',WebKit也有問題。 – BoltClock 2012-01-02 17:02:15