nth-child和nth-of-type是CSS的两个伪选择器。在实践中,两者经常被混淆。这里把他们拿出来仔细对比一下,看看两人是怎么找元素的。nth-child(n)——寻找第n个子元素nth-of-type(n)——寻找同类型元素中的第n个元素。看这个定义,它们之间的区别可能不是很清楚。让我们稍微区分一下。p:nth-child(2)和p:nth-pf-type(2)的HTML代码如下
pgh1
pgh2
pgh3
pgh4
nth-child和nth-of-type是CSS的两个伪选择器。在实践中,两者经常被混淆。这里把他们拿出来仔细对比一下,看看两人是怎么找元素的。nth-child(n)——寻找第n个子元素nth-of-type(n)——寻找同类型元素中的第n个元素。看这个定义,它们之间的区别可能不是很清楚。让我们稍微区分一下。p:nth-child(2)和p:nth-pf-type(2)的HTML代码如下
pgh1
pgh2
pgh3
pgh4
pgh2
pgh3
pgh4
pgh1
pgh3
pgh4
pgh3
是p类型的第二个元素;在右侧的div中,pgh3
没有。因此,nth-child和nth-of-type的区别在于查找元素的方式。前者是在兄弟元素中寻找绝对位置的元素,后者是在同类元素中寻找绝对位置的元素。相同的是,都是先找到元素,然后再和前面的选择器进行匹配,这里的匹配方式是一样的。再往下延伸一点,查找的方式就很明确了,所以不管前面的选择器怎么变,最后都是先找到元素,再和前面的选择器匹配。也就是说,选择器与它们的查找方式无关。弄清楚这一点,这样您就不会被不同的组合搞糊涂了。p:nth-child(2)正确:找到第二个元素,这个元素就是p。错误:找到第二个元素p.info:nth-child(2)正确:找到类包含“info”的第二个元素。错误:查找其第二类包含“信息”的元素。p:nth-of-type(2)查找同一HTML标签类型中排名第二的元素,且该元素为p(或者直观地说,查找第二个p类型元素).info:nth-of-type(2)查找类包含“info”的相同HTML标记类型的第二个元素