CSS中first-child和nth-child的讲解

来源:互联网 发布:画设计图用什么软件 编辑:程序博客网 时间:2024/06/05 11:47

first-child

E:first-child是伪类选择器,很多人都知道它的存在,但是在使用时,可以仍存在误解。

说明

匹配父元素的第一个子元素E

从说明可以看出E是你要选择的第一个子元素,而不是父元素。一开始,误以为E:first-child是E的第一个子元素。

举个例子:

<ul>    <li>l1</li>    <li>l2</li>    <li>l3</li></ul>
  • 1
  • 2
  • 3
  • 4
  • 5

假设选择的是第一个li元素,则选择器应为li:first-child,而不是ul:first-child

<div>    <h1>h1</h1>    <p>p1</p>    <p>p2</p>    <p>p3</p></div>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

这时选择第一个p元素,应用p:first-child则会出现错误,因为p的父元素是div,而对于div来说,它的第一个子元素不是p,而是h1,所以如果选择器p:first-child,则会出错。

同理,E:last-child``E:only-child与上面的一样,E元素必须是其父元素的最后一个子元素或唯一一个子元素才可以。

:nth-child(n)

说明

匹配父元素的第n个子元素E

E也是子元素,而且也只能匹配父元素下第n个子元素。n是从1开始计数

<div>    <h1>h1</h1>    <p>p1</p>    <p>p2</p>    <p>p3</p></div>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

依然是上面的例子,如果这次要选择第一个p元素,则可以使用p:nth-child(2),因为第一个p元素在父元素<div>下是第二个子元素,所以n需要取值为2。

所以要记住:E:nth-child(n)中,E是你要选择的子元素,而n是E元素的父元素下,E元素所处的顺序数。

后记

此博文就是在练习时候发现关于css选择器方面理解不够深刻时,理解练习后所写的。所以关于css的选择器不能只停留在懂,还得多练。