first-child
E:first-child
是偽類選擇器,
匹配父元素的第一個子元素E
從說明可以看出E是你要選擇的第一個子元素,而不是父元素。一開始,誤以為E:first-child
是E的第一個子元素。
:nth-child(n)
匹配父元素的第n個子元素E
E也是子元素,而且也只能匹配父元素下第n個子元素。n是從1開始計數
<ul> <li>l1</li> <li>l2</li> <li>l3</li> </ul>
若要選擇 <li>l1</li> ul>li:first-child
若要選擇 <li>l2</li> ul>li:nth-child(2)
<div> <h1>h1</h1> <p>p1</p> <p>p2</p> <p>p3</p> </div>
這時選擇第一個p
元素,應用p:first-child
則會出現錯誤,因為p的父元素是div,而對於div來說,它的第一個子元素不是p,而是h1,所以如果選擇器p:first-child
,則會出錯。
同理,E:last-child``E:only-child
與上面的一樣,E元素必須是其父元素的最后一個子元素或唯一一個子元素才可以