關(guān)于css選擇器中nth-of-type和nth-child的區(qū)別

前言

今天學(xué)習(xí)了css選擇器,發(fā)現(xiàn)有兩個偽類nth-of-typenth-child在功能上十分相似徘溢,卻又有不同的地方吞琐。但我發(fā)現(xiàn)無論是在MDN上捆探,還是在w3school、菜鳥教程上站粟,對這兩個偽類選擇器的對比說的都不是很明白黍图。這篇文章就是對這兩個偽類的簡單探究~

nth-of-typenth-child的區(qū)別

nth-of-typenth-child都是css3中的偽類選擇器,其功能也都是選取父元素下的直接子元素奴烙,那么他們的區(qū)別在哪里呢助被?

其實(shí)他們的區(qū)別就在type和child上。

nth-of-type的關(guān)鍵詞是type切诀,即他關(guān)心的是類型恰起。它不會對所有子元素生效,只會對子元素中符合選擇器要求的類型的子元素進(jìn)行篩選趾牧,而忽略非選擇器要求的類型的子元素检盼。ele:nth-of-type(n)的意義就是選擇父元素下的第n個ele類型的子元素。

nth-child的關(guān)鍵詞是child翘单,它關(guān)心的是所有子元素吨枉。它會對所有子元素生效。ele:nth-child的意義就是選擇父元素下的第n個子元素哄芜,如果他是ele類型的貌亭,那么對他生效,如果他不是ele類型的认臊,則不生效圃庭。

簡而言之,nth-child影響到了所有child子元素失晴,而nth-of-type則影響到了相應(yīng)type的子元素剧腻。

例子

看一下下面代碼所示的例子:

<!DOCTYPE html>
<html>
<head>
    <style>
        .test-type h1:nth-of-type(n) {
            background-color: red;
        }
        .test-child h1:nth-child(n) {
            background-color: red;
        }
    </style>
</head>
<body>
  <div class="test-type">
    <h1>ReedSun1</h1>
    <h1>ReedSun2</h1>
    <p>ReedSun3</p>
    <h1>ReedSun4</h1>
    <p>ReedSun5</p>
  </div>
  <div class="test-child">
    <h1>ReedSun1</h1>
    <h1>ReedSun2</h1>
    <p>ReedSun3</p>
    <h1>ReedSun4</h1>
    <p>ReedSun5</p>
  </div>
</body>
</html>

我們來將n依次替換成1 2 3 4 5 ,運(yùn)行代碼涂屁,觀察結(jié)果书在。

  • 當(dāng)n等于1和2時,我們發(fā)現(xiàn)拆又,兩個div是一樣的儒旬,都是ReedSun1和ReedSun2分別背景變?yōu)辄S色。
  • 當(dāng)n等于3時帖族,出現(xiàn)不同了栈源,第一組中ReedSun4背景變成了黃色,而第二組中沒有元素背景變色竖般。
  • 當(dāng)n等于4時甚垦,第一組中沒有元素變色,第二組中ReedSun4背景變色。
  • 當(dāng)n等于5時制轰,兩組都沒有背景變色的元素。

這個代碼實(shí)驗(yàn)印證了我們的結(jié)論胞谭。

  • div中第三個h1子元素是ReedSun4垃杖,這就導(dǎo)致n等于3時第一組中是ReedSun4變色的情況。
  • div一共只有三個h1子元素丈屹,所以當(dāng)n等于4或5的時候调俘,第一組元素均不會出現(xiàn)背景變色的情況了。
  • div中1 2 4子元素是h1元素旺垒,而3 5不是彩库,所以第二組中,n等于3或5時沒有元素背景變色先蒋,n等于1 2 4時骇钦,相應(yīng)的元素背景變色。

總結(jié)

本來以為這兩個偽類選擇器要用非常復(fù)雜的語言才能解釋清楚【貉現(xiàn)在看來眯搭,只要抓住關(guān)鍵字,也能輕松應(yīng)對业岁。

總之鳞仙,這兩個偽類選擇器的區(qū)別就是type和child的不同,只要把握住這一點(diǎn)笔时,就肯定能記住他們兩個的區(qū)別了棍好。

共勉~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市允耿,隨后出現(xiàn)的幾起案子借笙,更是在濱河造成了極大的恐慌,老刑警劉巖较锡,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件提澎,死亡現(xiàn)場離奇詭異,居然都是意外死亡念链,警方通過查閱死者的電腦和手機(jī)盼忌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來掂墓,“玉大人谦纱,你說我怎么就攤上這事【啵” “怎么了跨嘉?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長吃嘿。 經(jīng)常有香客問我祠乃,道長梦重,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任亮瓷,我火速辦了婚禮琴拧,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘嘱支。我一直安慰自己蚓胸,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布除师。 她就那樣靜靜地躺著沛膳,像睡著了一般。 火紅的嫁衣襯著肌膚如雪汛聚。 梳的紋絲不亂的頭發(fā)上锹安,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天,我揣著相機(jī)與錄音倚舀,去河邊找鬼八毯。 笑死,一個胖子當(dāng)著我的面吹牛瞄桨,可吹牛的內(nèi)容都是我干的话速。 我是一名探鬼主播,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼芯侥,長吁一口氣:“原來是場噩夢啊……” “哼泊交!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起柱查,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤廓俭,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后唉工,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體研乒,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年淋硝,在試婚紗的時候發(fā)現(xiàn)自己被綠了雹熬。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡谣膳,死狀恐怖竿报,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情继谚,我是刑警寧澤烈菌,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響芽世,放射性物質(zhì)發(fā)生泄漏挚赊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一济瓢、第九天 我趴在偏房一處隱蔽的房頂上張望荠割。 院中可真熱鬧,春花似錦葬荷、人聲如沸涨共。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至懊直,卻和暖如春扒吁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背室囊。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工雕崩, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人融撞。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓盼铁,卻偏偏與公主長得像,于是被迫代替她去往敵國和親尝偎。 傳聞我的和親對象是個殘疾皇子饶火,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容