【发布时间】:2017-03-14 13:51:35
【问题描述】:
我一直在尝试创建类似于谷歌图片的东西(当你点击一张图片时,它会“打开”一个带有信息和链接的大版本,当你再次点击它时它会关闭)。
我的任务(学校)是只用纯 html(5) 和 css(3) 来实现这一点,所以没有 javascript 或 JQuery 或任何其他编程语言。
我已经尝试过使用复选框和收音机。当我使用复选框时,它会展开一个“信息框”,当我打开下一个复选框时它不会关闭。一次只需要打开一个。 因此我也尝试使用收音机。这里的问题是我无法取消选择它们。
只用html和css就可以实现吗?
有没有人可以帮助我?
提前致谢!
.folder {
width: 100%;
visibility: hidden;
}
.fold {
visibility: hidden;
background-color: #8b0000;
width: 60%;
height: 0px;
color: transparent;
-webkit-transition: all 0.3s;
-moz-transition: all 0.3s;
transition: all 0.3s;
position: absolute;
}
.toggle { display: none; }
.toggle-label {
display: inline-block;
cursor: pointer;
margin-top: 10px;
margin-bottom: 10px;
border: 1px solid #fff;
font-size: 11px;
color: #999;
background-color: #8b0000;
padding: 5px;
}
.toggle-label:hover {
background-color: #400000;
}
.toggle:checked ~ .fold {
height: 80px;
visibility: visible;
color: #fff;
}
.content{
width: 100%;
min-height: 0;
position: static;
-webkit-transition: all 0.3s;
-moz-transition: all 0.3s;
transition: all 0.3s;
}
.toggle:checked ~ .content {
min-height: 80px;
}
<label for="toggle1" class="toggle-label">FOLD/UNFOLD</label>
<label for="toggle2" class="toggle-label">FOLD/UNFOLD</label>
<label for="toggle3" class="toggle-label">CLOSE</label>
<div class="content">
<aside class="folder">
<input type="checkbox" name="xinfo" class="toggle" id="toggle1"/>
<div class="fold">Element 1</div>
</aside>
<aside class="folder">
<input type="checkbox" name="xinfo" class="toggle" id="toggle2"/>
<div class="fold">Element 2</div>
</aside>
<aside class="folder">
<input type="checkbox" name="xinfo" class="toggle" id="toggle3"/>
</aside>
</div>
【问题讨论】:
-
您不能显式“取消选择”单选按钮,只有在选中同一组中的另一个单选按钮时才会隐式发生。
-
我知道,这就是为什么我正在寻找解决方案或其他方式来做到这一点。不过谢谢你的回答。
-
解决方案包含在您已经知道的内容中。如果您有 X 个单选按钮并且您希望能够“取消选择”它们 - 那么您添加一个属于同一组的附加单选按钮。因此,无论您想放置“取消全选”功能的任何位置,都可以放置一个针对该单选按钮的标签。
-
如果您将类型从复选框更改为单选并选择内部没有任何内容的单选切换 3,它实际上会关闭其他选项并且不显示任何内容,这实际上是我需要的。如果您可以单击打开的收音机再次将其关闭,而不是使用“全部关闭”按钮/收音机,那就更好了。 (有人知道我正在尝试创建的官方名称或最常用的名称吗?)
-
然后在要点击关闭的地方放一个标签。
标签: html css image checkbox radio