2012-10-15 20 views
0

與此試圖目標前5名第n兒童和失敗

a:nth-child(n)::before 
{ 
    content: "› "; 
} 

a:nth-child(n+1)::before 
{ 
    content: "›› "; 
} 

a:nth-child(n+2)::before 
{ 
    content: "››› "; 
} 

a:nth-child(n+3)::before 
{ 
    content: "›››› "; 
} 

a:nth-child(n+4)::before 
{ 
    content: "››››› "; 
} 

我試圖讓

> A1

>> A2

>>> A3

>>>> a4

>>>>> a5

但它不工作......需要幫助,也嘗試過使用1,2,3,4,5而不是n + 1等......但是,也不起作用。

+2

是什麼瀏覽器你的測試,什麼是目前的結果呢? – Giona

+2

你需要每個鏈接五個標記嗎?或者只是第一個?如果前者,你必須使用'5n + 1,2,3'表達式,如果是後者,數字將會[很好](http://jsfiddle.net/2hTBH/),我想。 – raina77ow

+1

看來,nth-child其實是非常多才多藝的。對於那些有同樣問題的人的未來參考,文檔可以在這裏找到:http://www.w3.org/TR/selectors/#nth-child-pseudo –

回答

2

你已經在做什麼應該可以工作,即使它可能不是最好的方法。

這裏有一個edited version working

a { 
    display:block; 
} 
a:nth-child(1):before { 
    content: "› "; 
} 
a:nth-child(2):before { 
    content: "›› "; 
} 
a:nth-child(3):before { 
    content: "››› "; 
} 
a:nth-child(4):before { 
    content: "›››› "; 
} 
a:nth-child(5):before { 
    content: "››››› "; 
}​ 

有了這個HTML:

<a href="#">1</a><a href="#">2</a> 
<a href="#">3</a><a href="#">4</a> 
<a href="#">5</a>​ 

但不會與這方面的工作:

<a href="#">1</a><a href="#">2</a> 
<a href="#">3</a><a href="#">4</a> 
<div>5</div> 
<a href="#">6</a>​ 

所以,除非你的佈局正是第一一個,你可能想使用nth-of-type

您還可以使用a single colon :before

+0

我可以看到你的代碼,它的工作原理。但我沒有:P大聲笑 – b0x0rz

+0

我得到1,3,5,0,0>的(最新鉻btw:P) – b0x0rz

+0

@ b0x0rz我可以看到你的完整代碼? – Giona

1

我想我還沒有使用的功能還很多,但似乎你必須指定n+1爲您的第一個,並從那裏上去:

a:nth-child(n+1)::before 
{ 
    content: "› "; 
} 

a:nth-child(n+2)::before 
{ 
    content: "›› "; 
} 

a:nth-child(n+3)::before 
{ 
    content: "››› "; 
} 

a:nth-child(n+4)::before 
{ 
    content: "›››› "; 
} 

a:nth-child(n+5)::before 
{ 
    content: "››››› "; 
} 

演示: http://jsbin.com/aboxop/1

來源: http://jsbin.com/aboxop/1/edit

編輯:另外,由於@GionaF在他的評論越來越多,這隻會在一些瀏覽器支持。 (那些支持CSS選擇器級別3的人)

+0

它會標記第6個以及所有隨後的具有(n + 5)樣式的'a'元素。 – raina77ow

+0

@ raina77ow對我來說沒問題。總是精確到5. – b0x0rz

+3

你最好指定1,2,3,4和5,以使它更清晰,一次只針對一個元素。自我記錄代碼和所有。 – BoltClock