我正在尝试利用CSS复选框hack来切换显示:无和显示:阻止一个页面的多个部分。我有按年份分割的图像库集并开始隐藏,并且希望能够单击年份来切换特定图库的显示。我坚持的一点是,每当我点击其中一个标签时,它下面的所有内容都会切换,而不仅仅是我试图专门切换的标签中包含的部分。
这是我到目前为止所拥有的。
CSS代码
.hide {
display:none;
}
input[type=checkbox] {
position: absolute;
top: -9999px;
left: -9999px;
}
input[type=checkbox]:checked ~ .hide {
display:block;
}
label {
display: block;
background: white;
padding: 5px;
border: 0px solid rgba(0,0,0,.1);
border-radius: 2px;
color: black;
font-weight: bold;
}
和HTML
<input type="checkbox" id="toggle_2012">
<label for="toggle_2012">2012</label><br>
<div class="hide">
<a class="fancybox" rel="2012" href="imgs/fb/3_b.jpg"><img src="imgs/fb/3_s.jpg" alt="Image 3"/></a>
<a class="fancybox" rel="2012" href="imgs/fb/4_b.jpg"><img src="imgs/fb/4_s.jpg" alt="Image 4"/></a>
</div>
<input type="checkbox" id="toggle_2013">
<label for="toggle_2013">2013</label><br>
<div class="hide">
<a class="fancybox" rel="2013" href="imgs/fb/1_b.jpg"><img src="imgs/fb/1_s.jpg" alt="Image 1"/></a>
<a class="fancybox" rel="2013" href="imgs/fb/2_b.jpg"><img src="imgs/fb/2_s.jpg" alt="Image 2"/></a>
</div>
(Jquery / Fancybox用于显示图像,这就是为什么它们被归类为Fancybox)
非常感谢任何帮助。这是我第一次使用复选框hack,但据我所知,输入/标签的唯一ID应该有效。不知道我在这里缺少什么。
提前致谢。
答案 0 :(得分:1)
答案 1 :(得分:-1)
这是几个月了,可能你现在找到了你的解决方案,但是为了找到这个主题的人的利益,这是我的解决方案。首先,你给复选框一个ID是正确的(CLASS在某些情况下也可以工作),但你必须在你的CSS中实际引用该ID。
而不是:
input[type=checkbox]:checked ~ .hide {
display:block;
}
试试这个:
#toggle_2013:checked ~ .hide {
display:block;
}
如果没有专门识别CSS中的复选框以及HTML中的复选框,DOM中的第一个合适的复选框将被激活而不是您想要的复选框。
希望这有帮助。