CSS3 nth child 偽類選擇器

2021-09-01 14:22:44 字數 1705 閱讀 5143

css3的強大,讓人驚嘆,人們在驚喜之餘,又不得不為其艱難的道路感到可惜:好的標準只有得到行業瀏覽器的良好支援才算得上「標準」。css3標 準已提出數年,但是目前能實現她的瀏覽器並不多,雖然部分瀏覽器能實現部分規範,但這又有什麼用呢?面對更多的相容性問題,csser們只有望洋輕嘆。雖 然如此,但有前瞻性的我們,又怎能停步不前呢?今天我們就來「前瞻」一下css3的乙個偽類選擇器「:nth-child()」

語法:

:nth-child(an+b)
為什麼選擇她,因為我認為,這個選擇器是最多學問的乙個了。很可惜,據我所測,目前能較好地支援她的只有opera9+和safari3+。

描述:

偽類:nth-child()的引數是an+b,如果按照w3.org上的描述,寫成中文,很可能會讓人頭暈,再加上筆者的文筆水平有限,所以我決定避開an+b的說法,把它拆分成5種寫法共5部分來說明。

:nth-child(number)

直接匹配第number個元素。引數number必須為大於0的整數。

例子:

li:nth-child(3)/*把第3個li的背景設為橙色*/
:nth-child(an)

匹配所有倍數為a的元素。其中引數an中的字母n不可預設,它是倍數寫法的標誌,如3n、5n。

例子:li:nth-child(3n)/*把第3、第6、第9、…、所有3的倍數的li的背景設為橙色*/

:nth-child(an+b) 與:nth-child(an-b)

先對元素進行分組,每組有a個,b為組內成員的序號,其中字母n和加號+不可預設,位置不可調換,這是該寫法的標誌,其中a,b均為正整數或0。如3n+1、5n+1。但加號可以變為負號,此時匹配組內的第a-b個。(其實an前面也可以是負號,但留給下一部分講。)

例子:li:nth-child(3n+1)/*匹配第1、第4、第7、…、每3個為一組的第1個li*/

li:nth-child(3n+5)/*匹配第5、第8、第11、…、從第5個開始每3個為一組的第1個li*/

li:nth-child(5n-1)/*匹配第5-1=4、第10-1=9、…、第5的倍數減1個li*/

li:nth-child(3n±0)/*相當於(3n)*/

li:nth-child(±0n+3)/*相當於(3)*/

:nth-child(-an+b)

此處一負一正,均不可預設,否則無意義。這時與:nth-child(an+1)相似,都是匹配第1個,但不同的是它是倒著算的,從第b個開始往回算,所以它所匹配的最多也不會超過b個。

例子:li:nth-child(-3n+8)/*匹配第8、第5和第2個li*/

li:nth-child(-1n+8)/*或(-n+8),匹配前8個(包括第8個)li,這個較為實用點,用來限定前面n個匹配常會用到*/

:nth-child(odd) 與:nth-child(even)

分別匹配序號為奇數與偶數的元素。奇數(odd)與(2n+1)結果一樣;偶數(even)與(2n+0)及(2n)結果一樣。

CSS3 nth child 偽類選擇器

css3的強大,讓人驚嘆,人們在驚喜之餘,又不得不為其艱難的道路感到可惜 好的標準只有得到行業瀏覽器的良好支援才算得上 標準 css3標 準已提出數年,但是目前能實現她的瀏覽器並不多,雖然部分瀏覽器能實現部分規範,但這又有什麼用呢?面對更多的相容性問題,csser們只有望洋輕嘆。雖 然如此,但有前瞻...

css3 nth child 偽類選擇器

css3的強大,讓人驚嘆,人們在驚喜之餘,又不得不為其艱難的道路感到可惜 好的標準只有得到行業瀏覽器的良好支援才算得上 標準 css3標 準已提出數年,但是目前能實現她的瀏覽器並不多,雖然部分瀏覽器能實現部分規範,但這又有什麼用呢?面對更多的相容性問題,csser們只有望洋輕嘆。雖 然如此,但有前瞻...

CSS3 nth child 偽類選擇器

css3 nth child 偽類選擇器 css3的強大,讓人驚嘆,人們在驚喜之餘,又不得不為其艱難的道路感到可惜 好 的標準只有得到行業瀏覽器的良好支援才算得上 標準 css3標 準已提出數年,但是目前能實現她的瀏覽器並不多,雖然部分瀏覽器能實現部分規範,但這又有什麼用呢?面對更多的相容性問題,c...