这不是一个直接的答案,但如果您可以嵌套替代元素(例如div,section),这里有一个想法,您可以如何使用纯CSS。诀窍是使用CSS变量来控制
background-position
然后为每个子对象增加它,以便将背景移动到下一个颜色。您需要替换元素才能实现增量,使用一个元素,我们将有一个周期,它不会工作。
:root {
--i:1;
--j:1;
}
div,section {
padding-top: 20px;
margin-left: 10px;
background:
repeating-linear-gradient(to bottom,
blue 0, blue calc(100%/3),
red calc(100%/3), red calc(2*100%/3),
green calc(2*100%/3), green 100%);
background-size:100% 300%;
}
section {
--j:calc(var(--i) + 1);
background-position:0 calc(var(--j) * 100%);
}
div {
--i:calc(var(--j) + 1);
background-position:0 calc(var(--i) * 100%);
}
<div>
<section>
<div>
<section>
<div>
<section>
<div>
</div>
</section>
</div>
</section>
</div>
</section>
</div>