【发布时间】:2022-01-04 23:59:15
【问题描述】:
我需要更改表格中多个元素的背景颜色,但我不能使用 javascript。
起初我已经实现了一个代码来查看我需要的结果,这次使用的是 javascript。 代码有效,但正如我所说,我需要用没有 javascript 来实现一些东西。仅限 CSS。
如您所见,我在表格中有几行,一旦单击单元格 1 或 2,正确的行就会采用某种颜色模式。这种模式适用于我表中的所有行(最终实现将有 12 行)。
我找到了针对单个元素的解决方案,我在 div 元素中显示了该解决方案,但它仅适用于一个元素。我不知道如何使用我需要的颜色模式连续更改所有 td。
顺便说一句,每行将有 35 个单元格。不会像本例那样只有 5 个。
document.getElementById("td_1_0").addEventListener("click", ()=>{
document.getElementById("td_1_1").classList.toggle("cRed");
document.getElementById("td_1_2").classList.toggle("cYellow");
document.getElementById("td_1_3").classList.toggle("cRed");
document.getElementById("td_1_4").classList.toggle("cLime");
document.getElementById("td_1_5").classList.toggle("cLime");
});
document.getElementById("td_2_0").addEventListener("click", ()=>{
document.getElementById("td_2_1").classList.toggle("cRed");
document.getElementById("td_2_2").classList.toggle("cYellow");
document.getElementById("td_2_3").classList.toggle("cRed");
document.getElementById("td_2_4").classList.toggle("cLime");
document.getElementById("td_2_5").classList.toggle("cLime");
});
html {
text-align: center;
}
table {
width: 100%;
}
td {
border: 1px black solid;
}
.cRed {
background-color: red;
}
.cLime {
background-color: lime;
}
.cYellow {
background-color: yellow;
}
div {
background-color: lightgray;
height: 200px;
}
input:checked + div { background-color: cyan;}
<table>
<tr>
<td id="td_1_0">1</td>
<td id="td_1_1">A</td>
<td id="td_1_2">B</td>
<td id="td_1_3">C</td>
<td id="td_1_4">D</td>
<td id="td_1_5">E</td>
</tr>
<tr>
<td id="td_2_0">2</td>
<td id="td_2_1">F</td>
<td id="td_2_2">G</td>
<td id="td_2_3">H</td>
<td id="td_2_4">I</td>
<td id="td_2_5">J</td>
</tr>
</table>
<label>
<input type="checkbox" hidden>
<div>click to change (div)</div>
</label>
【问题讨论】:
标签: html css background-color