這次帶給大家nth-child與nth-of-type的元素在CSS中如何查找,nth-child與nth-of-type元素在CSS中查找的注意事項有哪些,下面就是實戰案例,一起來看看。
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程式碼如下
<p> </p><p> </p><p>pgh1</p> <p>pgh2</p> <p>pgh3</p> <p>pgh4</p> <p> </p><h5 id="p">p1</h5> <h5 id="p">p2</h5> <h5 id="p">p3</h5> <h5 id="p">p4</h5>
分別應用兩個樣式, 都是找第二個元素
p:nth-child(2) { color: red; font-weight:bold; } h5:nth-of-type(2) { color: blue; font-weight:bold; }
結果:兩者都應用成功。
現在我們對HTML程式碼做點改動,讓他們出現一些不同。我們將第一個p元素和第一個h5元素改為label,程式碼如下:
<p> </p><p> <label>pgh1</label> </p><p>pgh2</p> <p>pgh3</p> <p>pgh4</p> <p> <label>p1</label> </p><h5 id="p">p2</h5> <h5 id="p">p3</h5> <h5 id="p">p4</h5>
樣式不變,這時再來看效果,發現nth-of-type(2)結果變了,這時高亮的是p3。到這裡也算符合我們的邏輯。 h5:nth-of-type(2)要找的是第二個h5類型的元素,也就是p3。
繼續改變HTML程式碼。我們恢復第一個p元素和第一個h5元素,將第二個p元素和第二個h5元素改為label,樣式仍不變,結果會怎麼樣呢?
HTML如下:
<p> </p><p> </p><p>pgh1</p> <label>pgh2</label> <p>pgh3</p> <p>pgh4</p> <p> </p><h5 id="p">p1</h5> <label>p2</label> <h5 id="p">p3</h5> <h5 id="p">p4</h5>
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高亮的是p3。
為什麼會這樣呢?
nth-child 是尋找一堆兄弟元素裡的第二個元素,不管那個元素是什麼,只要它排行老二。這裡左側p找到的是,右側p找到的是。找到之後,再和前面的選擇符進行匹配,如果匹配對了,那就套用樣式。前面的選擇符是p,也就是要求元素是p類型,但這裡都是label,不匹配,兩個元素都不會套用這個樣式。
-
nth-of-type 是在一堆兄弟元素裡找到相同HTML標記類型(Markup Type)元素中排行第二的元素。在左側的p中,
pgh3
是p類型裡排行第二的元素;在右側的p中,p3
是h5類型裡排行第二的元素。找到之後,再和前面的選擇符進行匹配,如果匹配對了,那就套用樣式。前面的選擇符是h5, 那麼只有右側p的p3
元素應用了樣式,左側p的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"
相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
推薦閱讀:
以上是nth-child與nth-of-type的元素在CSS中如何找到的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Wufoo一直在集成方面非常出色。他們與特定應用程序(例如廣告系列顯示器,MailChimp和Typekit)進行集成,但他們也


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3漢化版
中文版,非常好用

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能