似曾相似?
比 nth-child 更嚴謹一點
這個跟 :nth-child()
差不多,差別在於它會「按照標籤來分組」:
1 | <div class="wrapper"> |
如果想對第奇數個 <p>
做設定:
1 | .wrapper p:nth-of-type(odd) { |
輕輕鬆鬆搞定!
常犯的錯誤
但如果這時候你改用 nth-child()
,結果會跟你想的不太一樣:
1 | .wrapper p:nth-child(odd) { |
結果:
這是因為 nth-child
會以「同階層」的元素來做排序,像這樣:
1 | <div class="wrapper"> |
所以實際上會先選到第奇數個元素,接著才看是不是 <p>
。(可以參考 這裡 的解釋)
至於 nth-of-type()
可以像成是這樣:
1 | <div class="wrapper"> |
所以一定要搞清楚它們兩個的差別。