nth-child(n)和:nth-of-type(n)都是选取选择器所对应的第n个元素的意思,且起始值都为1,不是深入了解的可能不知道他们究竟有什么区别。也许你会自己写一段CSS来测试下:

但可能你会遗憾的发现,他们都选中了第二个li元素。

好了,不绕弯子了,其实他们还是有区别的,:nth-of-type为什么要叫:nth-of-type?因为它是以”type”来区分的。也就是说:ele:nth-of-type(n)是指父元素下第n个ele元素,

而ele:nth-child(n)是指父元素下第n个元素且这个元素为ele,若不是,则选择失败。之前之所以没发现区别,是ul下面都是Li元素,但如果ul下的子元素不相同,你就会发现区别治所在了

可以看出,nth-of-type(2)选择的是type为li的第二个元素,而nth-child(2)选择的是<li>one</li>,很明显,它在ul的孩子中排第二,type正好为li,所以被选中。

好了,你明白了两者的区别了吧。