![](/img/trans.png)
[英]How to unckeck checkboxes in another div when checkbox in one div is checked
[英]How to select a div inside another element when a checkbox input is checked?
我有一个复选框,当它被检查以显示另一个元素内的div时(不在复选框旁边,它位于它的父元素旁边的div中)
<nav>
<div class='container'>
<label class="tog" for="toggle">☰</label>
<input type="checkbox" id="toggle"></input> //This is the checkbox
</div>
</nav>
<div class='container'>
<div class='select'> // This is the div that I want to select when checkbox is checked
</div>
</div>
我尝试了这些选择器,但没有工作:
#toggle:checked ~ .select{display:block}
#toggle:checked + .select{display:block}
CSS中没有父选择器。 如果您可以更改HTML,请将输入移动到相同级别的nav
和div的.container
。 隐藏由标签控制的输入,并使用CSS兄弟和父规则控制div display
属性:
#toggle { height: 0; overflow: hidden; padding: 0; margin: 0; } #toggle:checked + nav .tog { color: red; } #toggle:not(:checked) ~ .container > .select { display: none; }
<input type="checkbox" id="toggle"> <nav> <div class="container"> <label class="tog" for="toggle">☰</label> </div> </nav> <div class="container"> <div class="select"> // This is the div that I want to select when checkbox is checked </div> </div>
这将很容易解决您的JS问题。
var input = document.getElementById('toggle');
var select = document.querySelectorAll('.select')[0];
input.onchange = function(){
select.style.display = this.checked? 'block': 'none';
}
我没试过这个,但是如果你需要根据复选框的状态显示/隐藏div,你可以尝试这个
<nav>
<div class='container'>
<label class="tog" for="toggle">☰</label>
<input type="checkbox" id="toggle"></input> //This is the checkbox
</div>
</nav>
<div class='container'>
<div class='select' id="div-to-show" style="display:none">
</div>
</div>
var check = document.getElementById('toggle');
check.addEventListener( 'click', function( event ){
if( check.checked === true ){
document.getElementById('div-to-show').style.display = 'block';
}
else{
document.getElementById('div-to-show').style.display = 'none';
}
} );
问题的关键部分在这里
它在一个div旁边,就在它的父母旁边
目前无法通过CSS完成此操作,因为目标需要位于同一父级中。 您可以看一下这个问题的答案,以获得更深入的解释,或者BoltClock的答案可以获得更深入的内容 。
显然,如果你想沿着这条路走下去,这可以用Javascript来完成,但听起来你想要一个CSS答案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.