nth-child 不是你想象的那样
nth-child 的定义是: 选择器匹配父元素中的第 n 个子元素,元素类型没有限制。
n 可以是一个数字,一个关键字,或者一个公式。
这里首先知道,前面是一个选择器,如果选择到一个节点,然后会去找他的父级容器。然后再找到这个父级元素的指定元素。
比如:指定每个 p 元素匹配的父元素中第 2 个子元素的背景色:
p:nth-child(1)
{
background:#ff0000;
}
这是第一个段落。
这是第二个段落。
这是第三个段落。
这是第四个段落。
注意: Internet Explorer 8 以及更早版本的浏览器不支持 :nth-child()选择器.
这里可以很顺利找到 body 的第一个 p 。
但是如果前面加一个 h1 。就可以看到 p:nth-child() 就是从 2 开始了。也就是说这个数字是代表了父级节点的第几个子元素,
然后我们以后在用的时候,也要知道该元素在父级元素为第几个,从这个数字的开始。
其实 :first-child 只是 :nth-child(1) 的缩写,个人看法。如果在 p 之前加一个其他元素就看到选择不到了。同理 :last-child 也是的。如果在最后一个 p 之后加一个 其他的那就不管用了。
其他几个注意的地方:
n 可以是数字,也可以是公式,
还可以是 odd | 奇数 , even | 偶数
如果是公式, 3n + 1 ,n 是从 0 开始的。