【发布时间】:2021-09-10 00:49:49
【问题描述】:
我有一个多行的 CSS 网格,每行有 6 列。
我想使用 CSS 来交替每个单元格的背景颜色并逐行改变它。
所以第一行(奇数行),所有偶数单元格都有蓝色背景,奇数单元格有黑色背景。
第二(偶数)行,所有偶数单元格将具有黑色背景,奇数单元格将具有蓝色背景。
由于所有网格元素都是同级元素,因此我很难使用 CSS 来实现这一点,因此使用 nth-child(odd) 会生成颜色列而不是交错的棋盘格。
如果有人想乱来,我已经附上了一支笔。
理想情况下,我想要一个不向标记添加一堆类的纯 CSS 解决方案。不过,如有必要,我愿意接受 JS 帮助。
https://codepen.io/qotsa42/pen/BaZWwMq
<div class='grid'>
<div class='box'></div>
<div class='box'></div>
<div class='box'></div>
<div class='box'></div>
<div class='box'></div>
<div class='box'></div>
<div class='box'></div>
<div class='box'></div>
<div class='box'></div>
<div class='box'></div>
<div class='box'></div>
<div class='box'></div>
<div class='box'></div>
<div class='box'></div>
<div class='box'></div>
<div class='box'></div>
<div class='box'></div>
<div class='box'></div>
<div class='box'></div>
<div class='box'></div>
<div class='box'></div>
<div class='box'></div>
<div class='box'></div>
<div class='box'></div>
</div>
.grid {
display: grid;
grid-template-columns: repeat(6, 1fr);
grid-gap: 15px;
}
.box {
height: 100px;
width: 100px;
}
.box:nth-child(even) {
background-color: blue;
}
.box:nth-child(odd) {
background-color: black;
}
【问题讨论】: