简介
:nth-child() 是一个 CSS 伪类选择器,用于匹配其父元素的第 n 个子元素。这个选择器非常强大,因为它允许你根据位置选择元素,而不仅仅是根据类型或属性。
基本语法
:nth-child(an + b) 的基本语法如下:
selector:nth-child(an + b) {
/* 属性声明 */
}其中:
a和b是整数。n是从 0 开始计数的变量。
示例
选择奇数行
要选择所有奇数行的元素,可以使用以下代码:
tr:nth-child(2n+1) {
background-color: #f2f2f2;
}选择偶数行
要选择所有偶数行的元素,可以使用以下代码:
tr:nth-child(2n) {
background-color: #e6e6e6;
}选择特定位置的元素
要选择特定位置的元素,例如选择第 3 个子元素,可以使用以下代码:
li:nth-child(3) {
color: red;
}使用负值和零
虽然通常 n 从 0 开始,但你可以通过调整 a 和 b 的值来选择不同的位置。例如:
div:nth-child(-n+3) {
border: 1px solid black;
}这段代码会选择前三个子元素,并给它们添加边框。
使用关键字
除了使用公式外,还可以使用一些关键字来简化选择器:
odd:选择所有奇数位置的子元素。even:选择所有偶数位置的子元素。
li:nth-child(odd) {
font-weight: bold;
}
li:nth-child(even) {
font-style: italic;
}复杂的选择器
:nth-child() 也可以与其它选择器结合使用,以实现更复杂的选择效果。
结合类选择器
div.some-class:nth-child(2) {
padding: 10px;
}这段代码会选择带有 some-class 类的第二个子元素,并给它添加内边距。
结合属性选择器
input[type="text"]:nth-child(3) {
width: 200px;
}这段代码会选择父元素中的第三个子元素,并且该子元素是文本输入框。
总结
:nth-child() 是一个非常强大的选择器,它允许你根据元素的位置来选择元素,这使得你可以灵活地控制页面上的样式。通过组合不同的选择器和使用关键字,你可以创建出非常复杂的样式规则。