【发布时间】:2021-10-27 06:51:57
【问题描述】:
我很好奇是否可以根据复选框的选中状态将复选框放置在不同的区域中,仅使用 CSS!当有一个很好的可理解的解决方案时,我是一个纯 CSS 的忠实粉丝。
我显然把我所有的希望都寄托在了 grid 和 flex 上,但是我无法想出一个我想要的解决方案。
“A 区”中的激活复选框以及“B 区”中未激活的复选框。两列。
HTML 就像这样简单:
<div class="options">
<input type="checkbox" id="checkbox1">
<label for="checkbox1">checkbox</label>
<input type="checkbox" id="checkbox2">
<label for="checkbox2">checkbox</label>
...
</div>
输入和标签标签被包装时也可以。 而且我可以在包装标签上切换一个类...(当然使用 JS)
<div class="options">
<div class="checked">
<input type="checkbox" id="checkbox1">
<label for="checkbox1">checkbox</label>
</div>
<div class="">
<input type="checkbox" id="checkbox2">
<label for="checkbox2">checkbox</label>
</div>
...
</div>
我用这种方法尝试过的 CSS:
.options {
display: grid;
grid-template-columns: 1fr 1fr;
}
.checked {
grid-row: 1;
}
但是当检查多个盒子时,我无法设法将它们保留在两列中。
【问题讨论】:
-
请说明您目前尝试过的方法
-
使用 JS 是可以的,但仅使用 CSS 是不可能在父包装器中添加类名并使其对齐的。
-
您是否在 CSS 中寻找
:checked选择器?没有 Javascript 就无法添加或删除类(正如@abin-thaha 所说),但我不知道仅使用此选择器是否可以实现您想要的! -
@JohnP,同意您的回复。但是Yannik,你为什么不能用JS来做呢?
-
正如@JohnP 提到的,
:checked选择器可用于将选中的元素与flex-end对齐,如果您正在为父级使用弹性框布局。