使用CSS,你可以选择子元素和相邻的元素,所以你正在尝试做的会,如果div
工作在该复选框后立即放置,但如果你想在div
是其他地方(复选框之上)它的工作,你需要使用JavaScript,如果是后,您可以使用+
选择相邻元素或嵌套相邻元素
Demo
<input type="checkbox" />
<div>Toggle Using CSS</div>
input[type=checkbox]:checked + div {
display: block;
}
div {
display: none;
}
靶向div
这是更远的地方(而不是checkbox
前)这样
Demo 2
input[type=checkbox]:checked + a + .blah .target {
display: block;
}
.target {
display: none;
}
<input type="checkbox" />
<a href="#">Dummy Link</a>
<div class="blah">
<div class="target">Complicated Selector, Isn't It?</div>
</div>
说明:input[type=checkbox]:checked + a + .blah .target
在 这里我们选择chec kbox处于检查状态,并且我们通过选择相邻元素即锚定标记 并且比我们选择另一个相邻元素邻近a
标记div
具有类别.blah
,并且比我们选择嵌套子元素与类.target
使用jQuery做(哪里并不重要目标元素是)Demo 3
<input type="checkbox" id="checkme" />
<a href="#">Dummy Link</a>
<div id="show_on_check" style="display:none">
This content should appear when the checkbox is checked
</div>
$(document).ready(function() {
$('#checkme').change(function() {
$('#show_on_check').toggle();
});
});
有可能是打碎的功能额外的代码的页面。您可能需要多发一点(页面上的内容)代码。我以前有过这个确切的问题。 – Supplement
查看http://stackoverflow.com/questions/10782054/what-does-the-css-tilde-squiggle-twiddle-selector-do。将div移动到其他位置会破坏您的选择器。 – Chris