在CSS3中,:nth-child()
和 :nth-of-type()
是两个功能强大的伪类选择器,它们都允许你选择一组元素中的特定元素,但它们的选择机制有所不同。
:nth-child()
:nth-child()
选择器是基于元素在其父元素中的位置(即它是第几个子元素)来选择元素的。这个选择器的计数是从1开始的,而且它会考虑所有类型的子元素。例如,如果你有一个包含多个 <p>
和 <div>
元素的父元素,并且你想选择第二个子元素,不论它是什么类型,你可以使用 :nth-child(2)
。
示例:
/* 这将选择每个父元素的第二个子元素,无论它是什么类型 */
element:nth-child(2) {
/* CSS样式 */
}
:nth-of-type()
与 :nth-child()
不同,:nth-of-type()
选择器是基于元素类型和其类型在父元素中的位置来选择元素的。也就是说,它是根据元素的类型来计数的。例如,如果你有一个包含多个 <p>
和 <div>
元素的父元素,并且你想选择第二个 <p>
元素,你可以使用 p:nth-of-type(2)
。
示例:
/* 这将选择每个父元素的第二个 <p> 元素 */
p:nth-of-type(2) {
/* CSS样式 */
}
总结:
:nth-child()
是基于元素在所有子元素中的位置来选择的,不考虑元素的类型。:nth-of-type()
是基于元素在其同类型元素中的位置来选择的,考虑元素的类型。