This question already has answers here:
Can I combine :nth-child() or :nth-of-type() with an arbitrary selector?
(7个答案)
3年前关闭。
我正在尝试将奇/偶选择器应用于具有父类的列表中的所有元素。
HTML:
CSS:
Link to jsFiddle
但是颜色正在重置。我希望列表项是文本的颜色。
有没有办法做到这一点?
See it in action 。
当然,人们愿意接受这种方式有一个限制,但是它与纯CSS所能达到的程度非常接近。
(7个答案)
3年前关闭。
我正在尝试将奇/偶选择器应用于具有父类的列表中的所有元素。
HTML:
<ul>
<li class="parent">green</li>
<li class="parent">red</li>
<li>ho ho ho</li>
<li class="parent">green</li>
<li class="parent">red</li>
</ul>
CSS:
.parent:nth-child(odd) {
background-color: green;
}
.parent:nth-child(even) {
background-color: red;
}
ul {
width:100px;
height: 100px;
display: block;
}
Link to jsFiddle
但是颜色正在重置。我希望列表项是文本的颜色。
有没有办法做到这一点?
最佳答案
通常,您想要的是不可能的,但是对于有限数量的“排除”元素,有一种方法可以实现所需的行为:general sibling combinator ~
。
这个想法是,对于每次出现的非.parent
元素,其后的.parent
元素都会进行颜色切换:
.parent:nth-child(odd) {
background-color: green;
}
.parent:nth-child(even) {
background-color: red;
}
/* after the first non-.parent, toggle colors */
li:not(.parent) ~ .parent:nth-child(odd) {
background-color: red;
}
li:not(.parent) ~ .parent:nth-child(even) {
background-color: green;
}
/* after the second non-.parent, toggle again */
li:not(.parent) ~ li:not(.parent) ~ .parent:nth-child(odd) {
background-color: green;
}
li:not(.parent) ~ li:not(.parent) ~ .parent:nth-child(even) {
background-color: red;
}
See it in action 。
当然,人们愿意接受这种方式有一个限制,但是它与纯CSS所能达到的程度非常接近。
关于html - :nth-child(偶/奇)选择器,带有类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17458582/
10-12 18:43