[英]Toggle Content via Menu (Pure HTML and CSS)
假设我有三个包含唯一内容的div;
当我的页面加载时,它们都需要隐藏。
它们也彼此重叠放置(占用相同的空间,但宽度相同,但高度不同)。
这些div上方有一个水平菜单,可触发其可见性。
| 查看1 | 查看2 | 查看3 |
如果用户单击“视图1”,则div1可见;
如果用户单击“视图2”,则只有div2可见;
与点击“视图3”相同;
我当前的解决方案可通过JSFiddle获得。
仅将复选框和不透明度设置与<div>
, <label>
和<input>
如何以最小的方式仅使用HTML和CSS(不使用脚本)进行处理?
诀窍是在<input type="checkbox">
之后添加<label>
标记,然后在CSS中添加选择器:checked
作为输入,如触发器。
HTML
<input class="trigger" id="1" type="checkbox">
<label for="1">Click me</label>
<div>Surprise!</div>
<br><br>
<input class="trigger" id="2" type="checkbox">
<label for="2">Click me too</label>
<div>Surprise again!</div>
CSS
.trigger + label + div /*This selects the div that is placed after a label that's after a element with 'trigger' class*/
{
display:none; /*hiding the element*/
}
.trigger /*This selects a element with class 'trigger'*/
{
display:none; /*hiding the element*/
}
.trigger:checked + label + div /*This selects the div that is placed after a label that's after a CHECKED input with class 'trigger'*/
{
display:block; /*showing the element*/
}
要么
您说过要让div出现而没有任何菜单变形,对吗? 尝试将所有<div>
放在底部,并在其之前放置每个对应的<input>
。 标签停留在顶部。
就像这样:
<label for="1">Click me</label>
<label for="2">Click me too</label>
<br/><br/>
<input class="trigger" id="1" type="checkbox"/>
<div class="cont"><strong>1st Title</strong><br/>And 1st content.</div>
<input class="trigger" id="2" type="checkbox"/>
<div class="cont"><strong>2nd Title</strong><br/>And 2nd content.</div>
在CSS中:
.trigger:checked + div {
display:block;
}
(对不起,如果我的英语不好)
尝试不同的CSS菜单。 您可以从Google获得很多东西。 以下是从网上收集的一些样本:
http://www.smashingapps.com/2013/02/18/48-free-dropdown-menu-in-html5-and-css3.html
http://css3menu.com/enterprise-green.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.