
上篇介紹了選取第一與最後的元素,那我們是否可以選取中間的元素呢?當然也是可以的!
比方說,你可以選擇第三個元素、所有奇數元素、所有偶數元素,甚至依據特定規則選取元素,例如 2、5、8、11 等。

只要遵循 an+b 的公式規則,就能精準選中你想要的元素。
:nth-child 基本用法選擇器:nth-child(an+b) { 
	屬性名: 屬性值; 
}
選取同一層次的兄弟元素中,符合 an+b 位置的元素:
a 是元素的間隔數值,決定每隔幾個元素選一次n 是一個自然數,從 0 開始遞增 (0, 1, 2, 3...),代表每次計算的倍數b 是起始位置的偏移量,決定從哪個位置開始選取一起試試:[CODEPEN]
<div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
</div>
.box:nth-child(3) {
  background-color: skyblue;
}
這裡的 :nth-child(3) 等同於公式 0n + 3,也就是直接選取第 3 個元素。

.box:nth-child(2n) {
  background-color: skyblue;
}
每個間隔為 2,且無任何偏移,相當於 2n + 0 ,每個偶數元素都會被選中
你也可以這樣寫
.box:nth-child(even) {
  background-color: skyblue;
}
even 本身就有雙數的意思,清楚明瞭。

.box:nth-child(2n+1) {
  background-color: skyblue;
}
這裡每隔兩個元素選一個,並從第一個元素開始,將會選中每個奇數元素
你也可以這樣寫,odd 本身就是奇數的意思
.box:nth-child(odd) {
  background-color: skyblue;
}

.box:nth-child(3n+2) {
  background-color: skyblue;
}
依情境做變化,假設希望是第 2、5、8、11…等呈現,可讓起始偏移量為 2,之後接間隔為 3n,其他規則也是依此類推

:nth-child 提供了一種靈活的方式來選取元素,無論你是需要選擇單一特定元素、偶數、奇數,還是依照自訂規則選擇多個元素,都可以透過 an+b 公式來達成。理解這個公式能幫助你更高效地控制 HTML 結構中的子元素樣式,使你的網頁設計更具靈活性與可擴展性。
本文將同步更新至 Lala Code