结构伪类可以根据文档结构关系来选择特定的元素,从而减少HTML文档对ID和类的依赖,有助于保持代码干净整洁。可以单独书写在css中,无需在HTML中增加代码,一般用于选择父级里面的第几个孩子,主要有:
- :first-child 选择第一个子元素
- :last-child 选择最后一子元素
- :nth-child() 按正序选择特定子元素
- :nth-last-child() 按倒序选择特定子元素
- :nth-of-type() 在同类型中选择特定子元素
- :nth-last-of-type() 按倒序在同类型中选择特定子元素
- :first-of-type 选择第一个同类型子元素
- :last-of-type 选择最后一个同类型子元素
- :only-child 选择唯一子类型
- :only-of-type 选择同类型的唯一子元素
- :empty 选择空元素
注意:
E:nth-child(n) 匹配父元素的第n个子元素E,也就是说,nth-child 对父元素里面所有孩子排序选择(序号是固定的) 先找到第n个孩子,然后看看是否和E匹配,不是则无效。
nth-child(n) 中n是从0开始计算的:
- 2n:偶数
- 2n+1:奇数
- 5n:5 10 15 ...
- n+5:从第5个开始(含第五个)到最后
- -n+5:前5个(含第5个)
E:nth-of-type(n) 匹配同类型中的第n个同级兄弟元素E,也就是说,对父元素里面指定子元素进行排序选择。 先去匹配E,然后再根据E找第n个孩子。
实际开发过程中,我个人认为:nth-of-type更好用一点,当然,如果是无序列表的话,还是用nth-child更好用吧。
案例(有兴趣的可以参考下面这位兄弟的博客):结构伪类选择器-CSS3新特性_阿年的博客-CSDN博客_结构伪类选择器特点