如何理解css的nth-of-type选择器?和nth-child的区别在哪?
发布于 作者:苏南大叔 来源:程序如此灵动~

在上一篇文章的css
的nth
选择器叙述中,苏南大叔描述了nth-child
系列选择器的用法。其注意事项就是:其作用范围优先级的问题。和:nth-child(n)
相对应的是:nth-of-type(n)
,两个选择器的主要区别就是:限定条件优先级不同。

本文测试环境:chrome@78.0.3904.108
,mac
。强烈建议先阅读nth-child()
系列说明,链接见文末。
:nth-of-type(n)
关于:nth-of-type(n)
的注意事项:
- 当前元素的父元素,属于某个类型的子元素中,第
N
个元素。 N
是从1
开始计算的,而不是从0
开始计算的。
测试代码,基本上和:nth-child(n)
的测试代码基本一致。如下所示:

nth-of-type(n)、nth-last-of-type(n)
nth-of-type(n)
、nth-last-of-type(n)
,基本注意事项如下:
n
从1
开始计数,而不是从0
开始计算。nth-of-type(n)
,从前往后数,第N个某元素。nth-last-of-type(n)
,从后往前数,第N个某元素。- 首要条件:需要符合冒号前面的某元素这个条件,这条限制,不可以是
#id
,但可以是.class
。 - 次要条件:符合父元素的第n个子元素。

nth-of-type(n+2)、nth-last-of-type(n+2)
第2个开始,包括第二个:
从倒数第2个开始,包括倒数第二个:

nth-of-type(even)、nth-of-type(2n)
序号偶数的元素

nth-of-type(odd)、nth-of-type(2n+1)
序号奇数数的元素

first-of-type、last-of-type
第一个,最后一个,注意没有()
。

type
支持.class
,但不支持#id
。

相关链接
总结
A:nth-child(n)
和A:nth-of-type(n)
对比的话:
A
可以是html
标签,也可以是.class
。但是对于#id
,测试中,只有A:nth-child(n)
生效,但是A:nth-of-type(n)
并不生效。所以,type
意义上,包括html
标签,也可以是.class
。- 对于
A:
后面的条件B
,A:nth-child(n)
的优先级是先B
再A
,A:nth-of-type(n)
的优先级是先A
再B
。
更多css
的相关文章,请点击苏南大叔的博客:



666