搜尋
首頁web前端css教學解析CSS3偽類選擇器nth-of-type和nth-child的用法,以及兩者的差異

在工作中,常會用到CSS中的選擇器,選擇器也分為很多種,例如:ID選擇器,類別選擇器,標籤選擇器,偽類選擇器等等,那今天就著重講講偽類選擇器中的nth-child是什麼意思,nth-child怎麼使用,以及他與nth-of-type的不同,他們都是CSS3中的偽類選擇器,而且很多人認為意思差不多,其實不然,他們還是有差別的,那接下裡,就和大家聊聊CSS3 nth-of-type和nth-child的使用方法,以及他們之間的差別。

一、nth-child( ) 與nth-of-type( )的定義與用法

nth-child(n) : 符合父元素中的第n 個子元素,元素類型沒有限制。
nth-of-type(n) : 符合同類型中的第n個同級兄弟元素。
n可以是一個數字,一個關鍵字,或一個公式,例如:nth-child(odd) 奇數 ,nth-child(even) 偶數

nth-child和nth-of-type的不同之處就是尋找元素的方式不同。前者是找出兄弟元素中某個絕對位置的元素,後者是尋找同類型元素中某個絕對位置的元素。同樣之處是,兩者都是找到元素之後再與前面的選擇符進行匹配,這裡的匹配方式是一樣的。
稍微往下延伸,清楚了查找方式,那麼不管前面的選擇符怎麼變,最後都是先查找到元素再與前面的選擇符進行匹配。也就是說選擇符與他們的尋找方式沒有關係。弄清楚這個就不會被不同的組合混淆了。

看這個定義也許還不是很清楚他們的差別,接下來我們透過程式碼和圖片來一點點來區分。

二、舉例說明 nth-of-type和nth-child的差別

1、給第一個div五個P標籤,給第二個div五個H5標籤,分別用nth-child(2)與nth-of-type(2),看看結果是不是一樣的,都是第二個變色。

<style type="text/css">
   p:nth-child(2){color: red ;}
   h5:nth-of-type(2){color: blue;}
 </style>
 <body>
  <div>
   <p>星期一</p>
   <p>星期二</p>
   <p>星期三</p>
   <p>星期四</p>
   <p>星期五</p>
  </div>
  <div>
   <h5 id="段落一">段落一</h5>
   <h5 id="段落二">段落二</h5>
   <h5 id="段落三">段落三</h5>
   <h5 id="段落四">段落四</h5>
   <h5 id="段落五">段落五</h5>   
  </div>
 </body>

效果圖:

解析CSS3偽類選擇器nth-of-type和nth-child的用法,以及兩者的差異

#2、現在我們對HTML程式碼做點改動,讓他們出現一些不同,CSS樣式不變。我們將第一個p元素和第一個h5元素改為h4,程式碼如下:

<div>
   <h4 id="星期一">星期一</h4>
   <p>星期二</p>
   <p>星期三</p>
   <p>星期四</p>
   <p>星期五</p>
  </div>
  <div>
   <h4 id="段落一">段落一</h4>
   <h5 id="段落二">段落二</h5>
   <h5 id="段落三">段落三</h5>
   <h5 id="段落四">段落四</h5>
   <h5 id="段落五">段落五</h5>   
  </div>

效果圖:

解析CSS3偽類選擇器nth-of-type和nth-child的用法,以及兩者的差異

##看看,現在是不是發現nth-of-type(2)結果變了,段落3變色了。 h5:nth-of-type(2)要找的是第二個h5類型的元素,也就是段落3。

3、繼續改變HTML程式碼。我們恢復第一個p元素和第一個h5元素,將第二個p元素和第二個h5元素改為h4,樣式仍保持不變,結果會怎麼樣?

<div>
   <p>星期一</p>
   <h4 id="星期二">星期二</h4>
   <p>星期三</p>
   <p>星期四</p>
   <p>星期五</p>
  </div>
  <div>
   <h5 id="段落一">段落一</h5>
   <h4 id="段落二">段落二</h4>
   <h5 id="段落三">段落三</h5>
   <h5 id="段落四">段落四</h5>
   <h5 id="段落五">段落五</h5>   
  </div>

效果圖:

解析CSS3偽類選擇器nth-of-type和nth-child的用法,以及兩者的差異

結果可以看到nth-child沒有效果,nth-of-type高亮的是段落3。

為什麼會這樣?

nth-child 是尋找一堆兄弟元素裡的第二個元素,不管那個元素是什麼,只要它排行第二就行。這裡前一個div找到的是 

星期二

,後一個div找到的是

段落二

。找到之後,再和前面的選擇符進行匹配,如果匹配對了,那就套用樣式。前面的選擇子是p,也就是要求元素是p型,但這裡都是h4,不匹配,兩個元素都不會套用這個樣式。
nth-of-type 是在一堆兄弟元素裡找到相同HTML標記類型元素中排行第二的元素。在第一個div中 

星期三

是p型裡排行第二的元素;在後一個div中
段落三
是h5型裡排行第二的元素。找到之後,再和前面的選擇符進行匹配,如果匹配對了,那就套用樣式。前面的選擇詞是h5, 那麼只有後一個div中
段落三
元素應用了樣式,前一個div的

星期二

則不會。

總結:以上詳細介紹了nth-of-type和nth-child的區別,希望可以幫助到你!


以上是解析CSS3偽類選擇器nth-of-type和nth-child的用法,以及兩者的差異的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
兩個圖像和一個API:我們重新著色產品所需的一切兩個圖像和一個API:我們重新著色產品所需的一切Apr 15, 2025 am 11:27 AM

我最近找到了一種動態更新任何產品圖像的顏色的解決方案。因此,只有一種產品之一,我們可以以不同的方式對其進行著色以顯示

每周平台新聞:第三方代碼,被動混合內容,連接最慢的國家的影響每周平台新聞:第三方代碼,被動混合內容,連接最慢的國家的影響Apr 15, 2025 am 11:19 AM

在本週的綜述中,燈塔在第三方腳本上闡明了燈光,不安全的資源將在安全站點上被阻止,許多國家連接速度

託管您自己的非JavaScript分析的選項託管您自己的非JavaScript分析的選項Apr 15, 2025 am 11:09 AM

有很多分析平台可幫助您跟踪網站上的訪問者和使用數據。也許最著名的是Google Analytics(廣泛使用)

它全部都在頭上:管理帶有React頭盔的React Power Site的文檔頭它全部都在頭上:管理帶有React頭盔的React Power Site的文檔頭Apr 15, 2025 am 11:01 AM

該文檔負責人可能不是網站上最迷人的部分,但是其中所處的內容對於您的網站的成功也一樣重要

JavaScript中的Super()是什麼?JavaScript中的Super()是什麼?Apr 15, 2025 am 10:59 AM

當您看到一些稱為super()的JavaScript時,在子類中,您會使用super()調用其父母的構造函數和超級。訪問它

比較不同類型的本機JavaScript彈出窗口比較不同類型的本機JavaScript彈出窗口Apr 15, 2025 am 10:48 AM

JavaScript具有各種內置彈出API,它們顯示用於用戶交互的特殊UI。著名:

為什麼可訪問的網站如此難以構建?為什麼可訪問的網站如此難以構建?Apr 15, 2025 am 10:45 AM

前幾天,我與一些前端人們聊天,講述了為什麼這麼多公司努力創建可訪問的網站。為什麼可訪問的網站如此艱難

'隱藏”屬性顯然很弱'隱藏”屬性顯然很弱Apr 15, 2025 am 10:43 AM

有一個HTML屬性,它可以正是您認為應該做的:

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能