html – :nth-​​child(even / odd)选择器与类

前端之家收集整理的这篇文章主要介绍了html – :nth-​​child(even / odd)选择器与类前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试将奇/偶选择符应用于列表中与父类的所有元素.

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一样接近.

原文链接:https://www.f2er.com/html/231026.html

猜你在找的HTML相关文章