CSS3 偽類選擇器 nth-child()說明

CSS3的強(qiáng)大,讓人驚嘆,人們?cè)隗@喜之余,又不得不為其艱難的道路感到可惜:好的標(biāo)準(zhǔn)只有得到行業(yè)瀏覽器的良好支持才算得上“標(biāo)準(zhǔn)”。CSS3標(biāo)準(zhǔn)已提出數(shù)年,但是目前能實(shí)現(xiàn)她的瀏覽器并不多,雖然部分瀏覽器能實(shí)現(xiàn)部分規(guī)范,但這又有什么用呢?面對(duì)更多的兼容性問題,CSSer們只有望洋輕嘆。雖然如此,但有前瞻性的我們,又怎能停步不前呢?今天我們就來“前瞻”一下CSS3的一個(gè)偽類選擇器“:nth-child()”。
語法:
:nth-child(an+b)
為什么選擇她,因?yàn)槲艺J(rèn)為,這個(gè)選擇器是最多學(xué)問的一個(gè)了。很可惜,據(jù)我所測(cè),目前能較好地支持她的只有Opera9+和Safari3+。
描述:
偽類:nth-child()的參數(shù)是an+b,如果按照w3.org上的描述,寫成中文,很可能會(huì)讓人頭暈,再加上筆者的文筆水平有限,所以我決定避開an+b的說法,把它拆分成5種寫法共5部分來說明。
第一種:簡單數(shù)字序號(hào)寫法
:nth-child(number)
直接匹配第number個(gè)元素。參數(shù)number必須為大于0的整數(shù)。
例子:
li:nth-child(3){background:orange;}/*把第3個(gè)LI的背景設(shè)為橙色*/
第二種:倍數(shù)寫法
:nth-child(an)
匹配所有倍數(shù)為a的元素。其中參數(shù)an中的字母n不可缺省,它是倍數(shù)寫法的標(biāo)志,如3n、5n。
例子:
li:nth-child(3n){background:orange;}/*把第3、第6、第9、…、所有3的倍數(shù)的LI的背景設(shè)為橙色*/
第三種:倍數(shù)分組匹配
:nth-child(an+b) 與 :nth-child(an-b)
先對(duì)元素進(jìn)行分組,每組有a個(gè),b為組內(nèi)成員的序號(hào),其中字母n和加號(hào)+不可缺省,位置不可調(diào)換,這是該寫法的標(biāo)志,其中a,b均為正整數(shù)或0。如3n+1、5n+1。但加號(hào)可以變?yōu)樨?fù)號(hào),此時(shí)匹配組內(nèi)的第a-b個(gè)。(其實(shí)an前面也可以是負(fù)號(hào),但留給下一部分講。)
例子:
li:nth-child(3n+1){background:orange;}/*匹配第1、第4、第7、…、每3個(gè)為一組的第1個(gè)LI*/
li:nth-child(3n+5){background:orange;}/*匹配第5、第8、第11、…、從第5個(gè)開始每3個(gè)為一組的第1個(gè)LI*/
li:nth-child(5n-1){background:orange;}/*匹配第5-1=4、第10-1=9、…、第5的倍數(shù)減1個(gè)LI*/
li:nth-child(3n±0){background:orange;}/*相當(dāng)于(3n)*/
li:nth-child(±0n+3){background:orange;}/*相當(dāng)于(3)*/
第四種:反向倍數(shù)分組匹配
:nth-child(-an+b)
此處一負(fù)一正,均不可缺省,否則無意義。這時(shí)與:nth-child(an+1)相似,都是匹配第1個(gè),但不同的是它是倒著算的,從第b個(gè)開始往回算,所以它所匹配的最多也不會(huì)超過b個(gè)。
例子:
li:nth-child(-3n+8){background:orange;}/*匹配第8、第5和第2個(gè)LI*/
li:nth-child(-1n+8){background:orange;}/*或(-n+8),匹配前8個(gè)(包括第8個(gè))LI,這個(gè)較為實(shí)用點(diǎn),用來限定前面N個(gè)匹配常會(huì)用到*/
第五種:奇偶匹配
:nth-child(odd) 與 :nth-child(even)
分別匹配序號(hào)為奇數(shù)與偶數(shù)的元素。奇數(shù)(odd)與(2n+1)結(jié)果一樣;偶數(shù)(even)與(2n+0)及(2n)結(jié)果一樣。
附:例子效果圖
相關(guān)文章
IE8下CSS3選擇器nth-child() 不兼容問題的解決方法
這篇文章主要介紹了IE8下CSS3選擇器nth-child() 不兼容問題的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-16CSS3 :nth-child()偽類選擇器實(shí)現(xiàn)奇偶行顯示不同樣式
css3的強(qiáng)大,讓人驚嘆,今天我們就來“前瞻”一下CSS3的一個(gè)偽類選擇器“:nth-child()”實(shí)現(xiàn)奇偶行顯示不同樣式,具體的詳細(xì)示例可以參考下文,希望對(duì)大家有所幫助2013-11-05- 網(wǎng)頁制作Webjx文章簡介:CSS3標(biāo)準(zhǔn)已提出數(shù)年,但是目前能實(shí)現(xiàn)她的瀏覽器并不多,雖然部分瀏覽器能實(shí)現(xiàn)部分規(guī)范,但這又有什么用呢?面對(duì)更多的兼容性問題,今天我們就來“2009-04-02
- nth-child(n)是css3中的一種選擇器,它的作用是匹配屬于其父元素的第n個(gè)元素,不論元素的類型,這篇文章主要介紹了css3中nth-child()的用法示例代碼,需要的朋友可以參考2024-01-19