在 CSS 樣式表中,有不少盛行的偽類實際上是針對列表元素而設計的。其中,:nth-child() 和 :nth-of-type() 兩種偽類允許你根據元素在列表中的位置來選擇單數或雙數,不管它們的內容是什么。
假設你有這樣的列表:
<ul> <li>Apple</li> <li>Orange</li> <li>Banana</li> <li>Pineapple</li> <li>Pear</li> </ul>
如果你想要讓單數項的顏色為綠色,雙數項的顏色為灰色,你可以這樣寫:
li:nth-child(odd) { color: green; } li:nth-child(even) { color: gray; }
這樣,Apple、Banana 和 Pear 就會變成綠色,而 Orange 和 Pineapple 就會變成灰色。
你也可以使用 :nth-of-type() 偽類來精確地選擇某種元素類型的單數或雙數項。例如,如果你要選擇 ul 元素中的單數 li 項,你可以這樣寫:
ul li:nth-of-type(odd) { color: purple; }
這樣,Apple、Banana 和 Pear 就會變成紫色了。
雖然這些偽類在列表元素上用得比較廣泛,但它們也可以用在其他元素上。要注意的是,如果你想選擇從第 n 個元素開始向后數的元素,必須使用 "an+b" 的形式來設置樣式。例如,如果你想選擇第 4 個元素及其之后的所有元素,你可以這樣寫:
li:nth-child(n+4) { background-color: black; color: white; }
這樣,Pineapple 和 Pear 就會變成白底黑字了。