【发布时间】:2018-09-26 18:41:06
【问题描述】:
我想根据复选框隐藏表格中的列。
此处第 2 列应隐藏,因为复选框 "col 2" 未选中。
[v] col 1 [ ] col 2 [v] col3
+-------------------------------+
| | col 1 | col 2 | col 3 |
| row 1 | aaa | bbb | ccc |
| row 2 | ddd | eee | fff |
+-------------------------------+
目前我有一个带有复选框的 div 容器,然后与这个 div 相邻,即表格。
为了让事情更复杂,复选框是“按钮复选框”,类似于:https://stackoverflow.com/a/7642302
<div class="filter_group">
<div class="check_button">
<label>
<input type="checkbox" data-filter-col="d1"><span>col 1</span>
</label>
</div>
<div class="check_button">
<label>
<input type="checkbox" data-filter-col="d2"><span>col 2</span>
</label>
</div>
<div class="check_button">
<label>
<input type="checkbox" data-filter-col="d3"><span>col 3</span>
</label>
</div>
</div>
<table>
<tr>
<td> </td>
<th data-col="d1">col 1</th>
<th data-col="d2">col 2</th>
<th data-col="d3">col 3</th>
</tr>
<tr>
<th>row 1</th>
<td data-col="d1">aaa</td>
<td data-col="d2">bbb</td>
<td data-col="d3">ccc</td>
</tr>
</table>
(此处示例代码中只有一个数据行,实际表有多个。)
根据我在本网站和其他地方的发现,如果我正确理解各种选择器,这是一个渺茫的希望 - 但是否可以使用 descendant 或 child 组合器 与 general 或 adjacent combinator 结合使用?方向:
.filter_group .check_button label input[data-filter-col="d1"]:checked ~
table td[data-col="d1"] {
display: none;
}
如果没有,有没有办法用 CSS 做到这一点而不会使结构过于复杂?
我可以并且正在使用 JavaScript 来解决这个问题,但我试图用 CSS 来解决它。
【问题讨论】: