成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

【CSS】nth-child 與 nth-of-type 的元素查找方式

鄒強 / 753人閱讀

摘要:和是的兩個偽選擇符。所以,和的不同之處就是查找元素的方式不同。前者是查找兄弟元素中某個絕對位置的元素,后者是查找同類型元素中某個絕對位置的元素。也就是說選擇符與他們的查找方式?jīng)]有關(guān)系。錯誤查找第二個包含的元素。

nth-child和nth-of-type是css的兩個偽選擇符。應(yīng)用中,這兩者常常容易混淆。這里把它們拿出來仔細(xì)做個對比,看看這兩者是怎么查找元素的。

nth-child(n) —— 尋找第n個子元素
nth-of-type(n) —— 尋找同一類型元素里的第n個元素

看這個定義也許還不是很清楚他們的區(qū)別,我們一點點來區(qū)分。

p:nth-child(2) 與 p:nth-pf-type(2)

HTML代碼如下

pgh1

pgh2

pgh3

pgh4

div1
div2
div3
div4

分別應(yīng)用兩個樣式, 都是找第二個元素

p:nth-child(2) {
    color: red;
    font-weight:bold;
}
h5:nth-of-type(2) {
    color: blue;
    font-weight:bold;
}

結(jié)果:兩者都應(yīng)用成功。

現(xiàn)在我們對HTML代碼做點改動,讓他們出現(xiàn)一些不同。我們將第一個p元素和第一個h5元素改為label,代碼如下:

pgh2

pgh3

pgh4

div2
div3
div4

樣式不變,這時再來看效果,發(fā)現(xiàn)nth-of-type(2)結(jié)果變了,這時高亮的是div3。到這里也算符合我們的邏輯。h5:nth-of-type(2)要找的是第二個h5類型的元素,也就是div3。

繼續(xù)改動HTML代碼。我們恢復(fù)第一個p元素和第一個h5元素,將第二個p元素和第二個h5元素改為label,樣式仍保持不變,結(jié)果會怎樣呢?
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沒有效果,nth-of-type高亮的是div3。

為什么會這樣呢?

nth-child 是查找一堆兄弟元素里的第二個元素,不管那元素是什么,只要它排行老二。這里左側(cè)div找到的是,右側(cè)div找到的是。找到之后,再和前面的選擇符進行匹配,如果匹配對了,那就應(yīng)用樣式。前面的選擇符是p,也就是要求元素是p類型,但這里都是label,不匹配,兩個元素都不會應(yīng)用這個樣式。

nth-of-type 是在一堆兄弟元素里找到相同HTML標(biāo)記類型(Markup Type)元素中排行第二的元素。在左側(cè)的div中,

pgh3

是p類型里排行第二的元素;在右側(cè)的div中,
div3
是h5類型里排行第二的元素。找到之后,再和前面的選擇符進行匹配,如果匹配對了,那就應(yīng)用樣式。前面的選擇符是h5, 那么只有右側(cè)div的
div3
元素應(yīng)用了樣式,左側(cè)div的

pgh3

則不會。

所以,nth-child和nth-of-type的不同之處就是查找元素的方式不同。前者是查找兄弟元素中某個絕對位置的元素,后者是查找同類型元素中某個絕對位置的元素。相同之處是,兩者都是找到元素之后再與前面的選擇符進行匹配,這里的匹配方式是一樣的。

稍微往下延伸,清楚了查找方式,那么不管前面的選擇符怎么變,最后都是先查找到元素再與前面的選擇符進行匹配。也就是說選擇符與他們的查找方式?jīng)]有關(guān)系。弄清楚這個就不會被不同的組合混淆了。

p:nth-child(2) 正確:查找第二個元素,且這個元素是p。錯誤:查找第二個為p的元素

.info:nth-child(2) 正確:查找第二個元素,且這個元素的class包含"info"。錯誤:查找第二個class包含"info"的元素。

p:nth-of-type(2) 查找相同HTML標(biāo)記類型中排行第二的元素,且這個元素是p(或者直觀的說查找第二個p類型元素)

.info:nth-of-type(2) 查找相同HTML標(biāo)記類型中排行第二的元素,且這個元素的class包含"info"

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/113022.html

相關(guān)文章

  • CSSnth-child nth-of-type辨析

    摘要:和是的兩個偽選擇器。就是要找第二個子元素,也就是第二步檢查是否匹配。你以為會匹配到結(jié)果并沒有解釋的查找過程也有兩步找出同標(biāo)記類型下的第個元素。那么這個樣式應(yīng)用成功,因為匹配。但是則應(yīng)用失敗,因為的里沒有。 nth-child 和 nth-of-type是CSS的兩個偽選擇器。要對相同位置或相似做操作的時候非常有用。前者的字面意思是選擇第幾個子元素,后者的字面意思是選擇某類型的第幾個元素...

    wthee 評論0 收藏0
  • CSS-偽類選擇器(未完待續(xù)。。。)

    摘要:滿足結(jié)果的為和,但是不匹配類名為,所以最后匹配結(jié)果為結(jié)果類名順序失效匹配每一級第三個標(biāo)簽且標(biāo)簽類名為的。匹配所有父級是的元素兄弟節(jié)點選擇器匹配所有緊接著元素之后的元素 子節(jié)點選擇器 :nth-of-type() && :nth-child() :nth-of-type(n) 匹配父節(jié)點下同一級對應(yīng)標(biāo)簽的第n個節(jié)點 (:nth-last-of-type(n)反序) :nth-child...

    未東興 評論0 收藏0
  • nth-child & nth-of-type講解

    摘要:關(guān)于的區(qū)別,網(wǎng)上很多人的解釋是存在誤區(qū),解釋是不夠清楚的,今天在這里把個人測試過的分享給大家按標(biāo)簽進行選擇寫法一使用得出的效果如圖使用得出的效果如圖由以上兩個效果圖可知,在父級元素下只有標(biāo)簽的時候,兩者沒什么區(qū)別。 關(guān)于nth-child && nth-of-type的區(qū)別,網(wǎng)上很多人的解釋是存在誤區(qū),解釋是不夠清楚的,今天在這里把個人測試過的分享給大家 按標(biāo)簽進行選擇 寫法一: ...

    Binguner 評論0 收藏0
  • nth-child & nth-of-type講解

    摘要:關(guān)于的區(qū)別,網(wǎng)上很多人的解釋是存在誤區(qū),解釋是不夠清楚的,今天在這里把個人測試過的分享給大家按標(biāo)簽進行選擇寫法一使用得出的效果如圖使用得出的效果如圖由以上兩個效果圖可知,在父級元素下只有標(biāo)簽的時候,兩者沒什么區(qū)別。 關(guān)于nth-child && nth-of-type的區(qū)別,網(wǎng)上很多人的解釋是存在誤區(qū),解釋是不夠清楚的,今天在這里把個人測試過的分享給大家 按標(biāo)簽進行選擇 寫法一: ...

    gityuan 評論0 收藏0
  • nth-child & nth-of-type講解

    摘要:關(guān)于的區(qū)別,網(wǎng)上很多人的解釋是存在誤區(qū),解釋是不夠清楚的,今天在這里把個人測試過的分享給大家按標(biāo)簽進行選擇寫法一使用得出的效果如圖使用得出的效果如圖由以上兩個效果圖可知,在父級元素下只有標(biāo)簽的時候,兩者沒什么區(qū)別。 關(guān)于nth-child && nth-of-type的區(qū)別,網(wǎng)上很多人的解釋是存在誤區(qū),解釋是不夠清楚的,今天在這里把個人測試過的分享給大家 按標(biāo)簽進行選擇 寫法一: ...

    waterc 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<