摘要:和是的兩個(gè)偽選擇符。所以,和的不同之處就是查找元素的方式不同。前者是查找兄弟元素中某個(gè)絕對(duì)位置的元素,后者是查找同類型元素中某個(gè)絕對(duì)位置的元素。也就是說(shuō)選擇符與他們的查找方式?jīng)]有關(guān)系。錯(cuò)誤查找第二個(gè)包含的元素。
nth-child和nth-of-type是css的兩個(gè)偽選擇符。應(yīng)用中,這兩者常常容易混淆。這里把它們拿出來(lái)仔細(xì)做個(gè)對(duì)比,看看這兩者是怎么查找元素的。
nth-child(n) —— 尋找第n個(gè)子元素
nth-of-type(n) —— 尋找同一類型元素里的第n個(gè)元素
看這個(gè)定義也許還不是很清楚他們的區(qū)別,我們一點(diǎn)點(diǎn)來(lái)區(qū)分。
p:nth-child(2) 與 p:nth-pf-type(2)
HTML代碼如下
pgh1
pgh2
pgh3
pgh4
div1
div2
div3
div4
分別應(yīng)用兩個(gè)樣式, 都是找第二個(gè)元素
p:nth-child(2) { color: red; font-weight:bold; } h5:nth-of-type(2) { color: blue; font-weight:bold; }結(jié)果:兩者都應(yīng)用成功。
現(xiàn)在我們對(duì)HTML代碼做點(diǎn)改動(dòng),讓他們出現(xiàn)一些不同。我們將第一個(gè)p元素和第一個(gè)h5元素改為label,代碼如下:
pgh2
pgh3
pgh4
div2
div3
div4
樣式不變,這時(shí)再來(lái)看效果,發(fā)現(xiàn)nth-of-type(2)結(jié)果變了,這時(shí)高亮的是div3。到這里也算符合我們的邏輯。h5:nth-of-type(2)要找的是第二個(gè)h5類型的元素,也就是div3。
繼續(xù)改動(dòng)HTML代碼。我們恢復(fù)第一個(gè)p元素和第一個(gè)h5元素,將第二個(gè)p元素和第二個(gè)h5元素改為label,樣式仍保持不變,結(jié)果會(huì)怎樣呢?
HTML如下:pgh1
pgh3
pgh4
div1
div3
div4
CSS 不變:
p:nth-child(2) { color: red; font-weight:bold; } h5:nth-of-type(2) { color: blue; font-weight:bold; }結(jié)果:nth-child沒(méi)有效果,nth-of-type高亮的是div3。
為什么會(huì)這樣呢?
nth-child 是查找一堆兄弟元素里的第二個(gè)元素,不管那元素是什么,只要它排行老二。這里左側(cè)div找到的是,右側(cè)div找到的是。找到之后,再和前面的選擇符進(jìn)行匹配,如果匹配對(duì)了,那就應(yīng)用樣式。前面的選擇符是p,也就是要求元素是p類型,但這里都是label,不匹配,兩個(gè)元素都不會(huì)應(yīng)用這個(gè)樣式。
nth-of-type 是在一堆兄弟元素里找到相同HTML標(biāo)記類型(Markup Type)元素中排行第二的元素。在左側(cè)的div中,
pgh3
是p類型里排行第二的元素;在右側(cè)的div中,div3
是h5類型里排行第二的元素。找到之后,再和前面的選擇符進(jìn)行匹配,如果匹配對(duì)了,那就應(yīng)用樣式。前面的選擇符是h5, 那么只有右側(cè)div的div3
元素應(yīng)用了樣式,左側(cè)div的pgh3
則不會(huì)。所以,nth-child和nth-of-type的不同之處就是查找元素的方式不同。前者是查找兄弟元素中某個(gè)絕對(duì)位置的元素,后者是查找同類型元素中某個(gè)絕對(duì)位置的元素。相同之處是,兩者都是找到元素之后再與前面的選擇符進(jìn)行匹配,這里的匹配方式是一樣的。
稍微往下延伸,清楚了查找方式,那么不管前面的選擇符怎么變,最后都是先查找到元素再與前面的選擇符進(jìn)行匹配。也就是說(shuō)選擇符與他們的查找方式?jīng)]有關(guān)系。弄清楚這個(gè)就不會(huì)被不同的組合混淆了。
p:nth-child(2) 正確:查找第二個(gè)元素,且這個(gè)元素是p。錯(cuò)誤:查找第二個(gè)為p的元素
.info:nth-child(2) 正確:查找第二個(gè)元素,且這個(gè)元素的class包含"info"。錯(cuò)誤:查找第二個(gè)class包含"info"的元素。
p:nth-of-type(2) 查找相同HTML標(biāo)記類型中排行第二的元素,且這個(gè)元素是p(或者直觀的說(shuō)查找第二個(gè)p類型元素)
.info:nth-of-type(2) 查找相同HTML標(biāo)記類型中排行第二的元素,且這個(gè)元素的class包含"info"
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/113022.html
相關(guān)文章
【CSS】nth-child 與 nth-of-type辨析
摘要:和是的兩個(gè)偽選擇器。就是要找第二個(gè)子元素,也就是第二步檢查是否匹配。你以為會(huì)匹配到結(jié)果并沒(méi)有解釋的查找過(guò)程也有兩步找出同標(biāo)記類型下的第個(gè)元素。那么這個(gè)樣式應(yīng)用成功,因?yàn)槠ヅ洹5莿t應(yīng)用失敗,因?yàn)榈睦餂](méi)有。 nth-child 和 nth-of-type是CSS的兩個(gè)偽選擇器。要對(duì)相同位置或相似做操作的時(shí)候非常有用。前者的字面意思是選擇第幾個(gè)子元素,后者的字面意思是選擇某類型的第幾個(gè)元素...
CSS-偽類選擇器(未完待續(xù)。。。)
摘要:滿足結(jié)果的為和,但是不匹配類名為,所以最后匹配結(jié)果為結(jié)果類名順序失效匹配每一級(jí)第三個(gè)標(biāo)簽且標(biāo)簽類名為的。匹配所有父級(jí)是的元素兄弟節(jié)點(diǎn)選擇器匹配所有緊接著元素之后的元素 子節(jié)點(diǎn)選擇器 :nth-of-type() && :nth-child() :nth-of-type(n) 匹配父節(jié)點(diǎn)下同一級(jí)對(duì)應(yīng)標(biāo)簽的第n個(gè)節(jié)點(diǎn) (:nth-last-of-type(n)反序) :nth-child...
nth-child & nth-of-type講解
摘要:關(guān)于的區(qū)別,網(wǎng)上很多人的解釋是存在誤區(qū),解釋是不夠清楚的,今天在這里把個(gè)人測(cè)試過(guò)的分享給大家按標(biāo)簽進(jìn)行選擇寫(xiě)法一使用得出的效果如圖使用得出的效果如圖由以上兩個(gè)效果圖可知,在父級(jí)元素下只有標(biāo)簽的時(shí)候,兩者沒(méi)什么區(qū)別。 關(guān)于nth-child && nth-of-type的區(qū)別,網(wǎng)上很多人的解釋是存在誤區(qū),解釋是不夠清楚的,今天在這里把個(gè)人測(cè)試過(guò)的分享給大家 按標(biāo)簽進(jìn)行選擇 寫(xiě)法一: ...
nth-child & nth-of-type講解
摘要:關(guān)于的區(qū)別,網(wǎng)上很多人的解釋是存在誤區(qū),解釋是不夠清楚的,今天在這里把個(gè)人測(cè)試過(guò)的分享給大家按標(biāo)簽進(jìn)行選擇寫(xiě)法一使用得出的效果如圖使用得出的效果如圖由以上兩個(gè)效果圖可知,在父級(jí)元素下只有標(biāo)簽的時(shí)候,兩者沒(méi)什么區(qū)別。 關(guān)于nth-child && nth-of-type的區(qū)別,網(wǎng)上很多人的解釋是存在誤區(qū),解釋是不夠清楚的,今天在這里把個(gè)人測(cè)試過(guò)的分享給大家 按標(biāo)簽進(jìn)行選擇 寫(xiě)法一: ...
nth-child & nth-of-type講解
摘要:關(guān)于的區(qū)別,網(wǎng)上很多人的解釋是存在誤區(qū),解釋是不夠清楚的,今天在這里把個(gè)人測(cè)試過(guò)的分享給大家按標(biāo)簽進(jìn)行選擇寫(xiě)法一使用得出的效果如圖使用得出的效果如圖由以上兩個(gè)效果圖可知,在父級(jí)元素下只有標(biāo)簽的時(shí)候,兩者沒(méi)什么區(qū)別。 關(guān)于nth-child && nth-of-type的區(qū)別,網(wǎng)上很多人的解釋是存在誤區(qū),解釋是不夠清楚的,今天在這里把個(gè)人測(cè)試過(guò)的分享給大家 按標(biāo)簽進(jìn)行選擇 寫(xiě)法一: ...
發(fā)表評(píng)論
0條評(píng)論
鄒強(qiáng)
男|高級(jí)講師
TA的文章
閱讀更多
同樣是做后端的,為什么你同學(xué)年薪80萬(wàn),你20多萬(wàn)?
閱讀 1084·2021-11-19 09:40
阿里云和騰訊云服務(wù)器選擇哪個(gè)比較好(細(xì)數(shù)各路服務(wù)商套路)
閱讀 2225·2021-11-15 18:00
hostyun,中國(guó)香港大帶寬VPS,低至17元/月,50M – 100M 香港
閱讀 1274·2021-10-18 13:34
嵌入式工程師月薪有多少?零基礎(chǔ)學(xué)嵌入式要多久?
閱讀 2255·2021-09-02 15:40
20180224-css選擇器的權(quán)重
閱讀 1542·2019-08-30 14:01
近階段前端面試問(wèn)題匯總(css篇)
閱讀 1120·2019-08-30 11:11
單選框和字對(duì)齊
閱讀 2487·2019-08-29 15:26
【CSS】nth-child 與 nth-of-type 的元素查找方式
閱讀 734·2019-08-29 14:15