参考:深入理解css3中 nth-child 和 nth-of-type 的区别 - peakleo - 博客园
首先:nth-child 和 nth-of-type的索引都是从1开始的
nth-child 和 nth-of-type有什么不同?
直接上例子,看代码注释就好
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>demo</title>
</head>
<style>/*ul下的第2个元素 且这个元素为li*/.ul li:nth-child(2) {color: red;}/*ul下的第2个li*/.ul li:nth-of-type(2) {color: green;}
</style>
<body>
<div><ul class="ul"><div>zero</div><li>one</li> <!-- red --><li>two</li> <!-- green--></ul>
</div>
</body>
</html>
如果在nth-child和 nth-of-type前不指定标签
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>demo</title>
</head>
<style>/*ul下的第2个元素*/.ul :nth-child(2) {color: red;}/*ul下 的所有类型标签的第二个。*/.ul :nth-of-type(2) {color: green;}</style><body>
<div><ul class="ul"><div>first div</div><li>first li</li><!-- 红色 --><li>second li</li><!-- 绿色 --><div>second div</div><!--绿色 --><div style="padding-left:10px"><span>first span</span><span>second span</span><!--绿色 --></div></ul>
</div>
</body>
</html>
公式:或者说是算术表达式
使用公式 (an + b)。描述:表示周期的长度,n 是计数器(从 0 开始),b 是偏移值。在这里,我们指定了下标是 3 的倍数的所有 p 元素的背景色:
<style>p:nth-of-type(3n+0) {background: #ff0000;}
</style>
若是 :nth-of-type(4n+2) 就是选择下标是4的倍数加上2的所有元素