日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > CSS >内容正文

CSS

html相同标签nth,详解CSS nth-child与nth-of-type的元素查找方式

發布時間:2025/3/19 CSS 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 html相同标签nth,详解CSS nth-child与nth-of-type的元素查找方式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

nth-child(n) —— 尋找第n個子元素

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

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

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

HTML代碼如下

pgh1

pgh2

pgh3

pgh4

div1
div2
div3
div4

分別應用兩個樣式, 都是找第二個元素

p:nth-child(2) {

color: red;

font-weight:bold;

}

h5:nth-of-type(2) {

color: blue;

font-weight:bold;

}

結果:兩者都應用成功。

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

pgh1

pgh2

pgh3

pgh4

div1

div2
div3
div4

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

繼續改動HTML代碼。我們恢復第一個p元素和第一個h5元素,將第二個p元素和第二個h5元素改為label,樣式仍保持不變,結果會怎樣呢?

HTML如下:

pgh1

pgh2

pgh3

pgh4

div1

div2

div3
div4

CSS 不變:

p:nth-child(2) {

color: red;

font-weight:bold;

}

h5:nth-of-type(2) {

color: blue;

font-weight:bold;

}

結果:nth-child沒有效果,nth-of-type高亮的是div3。

為什么會這樣呢?

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

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

pgh3

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

pgh3

則不會。

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

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

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

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

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

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

總結

以上是生活随笔為你收集整理的html相同标签nth,详解CSS nth-child与nth-of-type的元素查找方式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。