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

:first-child

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

说明

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

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

举个例子:

<ul>
    <li>l1li>
    <li>l2li>
    <li>l3li>
ul>

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

<div>
    <h1>h1h1>
    <p>p1p>
    <p>p2p>
    <p>p3p>
div>

这时选择第一个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>h1h1>
    <p>p1p>
    <p>p2p>
    <p>p3p>
div>

依然是上面的例子,如果这次要选择第一个p元素,则可以使用p:nth-child(2),因为第一个p元素在父元素

下是第二个子元素,所以n需要取值为2。

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

后记

此博文就是在练习时候发现关于css选择器方面理解不够深刻时,理解练习后所写的。所以关于css的选择器不能只停留在懂,还得多练。
这里推荐一个练习css选择器的网站:http://flukeout.github.io/

通过可视化的界面,让大家能知道自己的选择器写完后,所选的元素。

你可能感兴趣的:(笔记-前端)