2015-06-07 47 views
0

如果我使用下面的代碼:如何獲得使用CSS的兩個div類實例的第二個?

<style> 
.a:nth-child(2){ 
    color: blue 
} 
</style> 

<div class="a">Hello</div> 
<div class="b">Goodbye</div> 
<div class="a">Hello 2</div> 

與「A」,也不變爲藍色類名稱的第二個div的文本。

不過,如果我重新安排的div

<style> 
.a:nth-child(2){ 
    color: blue 
} 
</style> 

<div class="a">Hello</div> 
<div class="a">Hello 2</div> 
<div class="b">Goodbye</div> 

這工作。我怎麼會得到類名的第二個div,如第一個例子中使用純CSS寫的?

另外,nth-of-type(n)語法完全相同。

這裏有一個小提琴證明這一點:

http://jsfiddle.net/mrmayfield/r61pztpb/

+3

不可能的:/你將不得不使用JavaScript –

+0

好吧,確認是不可能的。多謝你們。 – Antoine

+1

你知道它總是最後一個嗎? http://jsfiddle.net/r61pztpb/2/ – camou

回答

1

您需要使用:

.a:nth-of-type(3){ 
    color: blue 
} 

或者:

.a:nth-child(3){ 
    color: blue 
} 

由於nth-of-type由元素的類型是去(在這種情況下爲div)和nth-child通過其父容器中的子編號。

更新fiddle

+0

但是,如果我有內容動態加載,並且我不知道我的第一個'a'div和第二個'a'div之間有多少個div,我怎樣才能在CSS中構造它?我肯定會想到CSS有一個類似於jQuery的.eq()函數的函數,但它似乎沒有 - 我已經閱讀了上面列出的類似問題的答案,但它仍然不清楚這個函數是否存在在CSS3中。 – Antoine

+1

是的,你必須在那個時候使用JavaScript。 – kaz

+0

瘋狂。謝謝您的幫助。 – Antoine

相關問題