:nth-child
和:nth-of-type
的基本使用方法;个人理解,这两个伪类都是函数式的,都有一个参数,语法格式如下:
:nth-child(n)
:nth-of-type(n)
可以看到它们都有一个参数 n ,它的值有以下三种可能:
代码:
p:nth-child 示例
1. 奇数行 - P标签
2. 偶数行 - DIV标签
3. 奇数行 - P标签
4. 偶数行 - P标签
5. 奇数行 - DIV标签
6. 偶数行 - P标签
7. 奇数行 - P标签
8. 偶数行 - P标签
9. 奇数行 - DIV标签
10. 偶数行 - DIV标签
结果:
总结(以 p:nth-child(odd)
为例说明):
p:nth-child(odd)
样式匹配规则是,首先必须匹配 odd 奇数行元素,其次匹配到的 odd 奇数行的元素类型还必须是 p 标签,必须同时满足这两个条件样式才生效。代码:
p:nth-of-type 示例
1. P标签 - 奇数行
2. DIV标签 - 奇数行
3. P标签 - 偶数行
4. P标签 - 奇数行
5. DIV标签 - 偶数行
6. P标签 - 偶数行
7. P标签 - 奇数行
8. P标签 - 偶数行
9. DIV 标签 - 奇数行
10. P标签 - 奇数行
结果:
总结(以 p:nth-of-type(odd)
为例说明):
p:nth-of-type(odd)
样式匹配规则是,首先必须匹配元素类型为 p 标签,然后根据匹配到的结果(也就是 div.list-2nd
的所有元素类型为 p 标签的子元素),再从这个结果元素列表中匹配满足 odd 奇数行的子元素,样式才生效。div.list-2nd
中所有子元素中 p 标签,然后从这些 p 标签中查找到奇数行元素,给它们设置样式。:nth-child(n)
与 :nth-of-type(n)
的区别element:nth-child(n)
是先根据 n 匹配规则,在此基础上匹配 element;element:nth-of-type(n)
是先匹配 element,然后从匹配的结果中根据 n 匹配。