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