html - 根据选中状态放置复选框
问题描述
我很好奇是否可以根据检查状态将复选框放置在不同的区域,仅使用 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;
}
但是,当检查了两个以上的框时,我无法将它们放在两列中。
解决方案
我做了一些工作来看看我能想出什么,遗憾的是我无法准确地创造出你所要求的东西,但它可能足够接近你需要的东西,或者提供一些创造性的输入:)
https://codepen.io/noex98/pen/OJgVqZr
HTML:
<div class="options">
<div class="checkWrap">
<input type="checkbox" id="checkbox1">
<label for="checkbox1">checkbox 1</label>
</div>
<div class="checkWrap">
<input type="checkbox" id="checkbox2">
<label for="checkbox2">checkbox 2</label>
</div>
<div class="checkWrap">
<input type="checkbox" id="checkbox3">
<label for="checkbox3">checkbox 3</label>
</div>
<div class="checkWrap">
<input type="checkbox" id="checkbox4">
<label for="checkbox4">checkbox 4</label>
</div>
<div class="checkWrap">
<input type="checkbox" id="checkbox5">
<label for="checkbox5">checkbox 5</label>
</div>
<div class="checkWrap">
<input type="checkbox" id="checkbox6">
<label for="checkbox6">checkbox 6</label>
</div>
</div>
CSS:
.options {
display: flex;
flex-wrap:wrap;
}
.checkWrap {
width:50%;
}
.checkWrap--checked {
order: -1;
}
JS:
let wrappers = document.querySelectorAll('.checkWrap')
document.querySelector('.options').addEventListener('click', () => {
for (wrapper of wrappers){
if (wrapper.getElementsByTagName('input')[0].checked == true){
wrapper.classList.add('checkWrap--checked')
} else {
wrapper.classList.remove('checkWrap--checked')
}
}
})
推荐阅读
- python-3.x - Groupby 和修改 Pandas 数据框列
- django - 有什么方法可以将当前日志记录修改为 json 格式,并添加了一些其他字段 python 日志记录
- xml - 如何填写 .ODT 表中的一列?
- twilio - 我无法使用
在我的 webhook 代码中,当 twilio 号码上有语音呼叫时完成路由 - jquery - jQuery - 如何在 iframe 正文上设置选择文本?
- android - 为什么我的闹钟比我设定的时间早触发?
- angular - 角材料日期选择器位置
- javascript - 了解带有嵌套内容的 D3 进入、更新和退出选择
- assembly - 我得到一个无限循环,我不知道为什么?
- ruby-on-rails - 在应用程序初始化时更改 Chewy 的默认策略