在 CSS 样式表中,有不少盛行的伪类实际上是针对列表元素而设计的。其中,:nth-child() 和 :nth-of-type() 两种伪类允许你根据元素在列表中的位置来选择单数或双数,不管它们的内容是什么。
假设你有这样的列表:
<ul> <li>Apple</li> <li>Orange</li> <li>Banana</li> <li>Pineapple</li> <li>Pear</li> </ul>
如果你想要让单数项的颜色为绿色,双数项的颜色为灰色,你可以这样写:
li:nth-child(odd) { color: green; } li:nth-child(even) { color: gray; }
这样,Apple、Banana 和 Pear 就会变成绿色,而 Orange 和 Pineapple 就会变成灰色。
你也可以使用 :nth-of-type() 伪类来精确地选择某种元素类型的单数或双数项。例如,如果你要选择 ul 元素中的单数 li 项,你可以这样写:
ul li:nth-of-type(odd) { color: purple; }
这样,Apple、Banana 和 Pear 就会变成紫色了。
虽然这些伪类在列表元素上用得比较广泛,但它们也可以用在其他元素上。要注意的是,如果你想选择从第 n 个元素开始向后数的元素,必须使用 "an+b" 的形式来设置样式。例如,如果你想选择第 4 个元素及其之后的所有元素,你可以这样写:
li:nth-child(n+4) { background-color: black; color: white; }
这样,Pineapple 和 Pear 就会变成白底黑字了。