我正在组建一个网站。我需要帮助来创建以下功能:
我希望“关于”链接在单击时展开到面板中,并在用户按下面板中的“隐藏”时收回。我在下面附上了一个图表来阐明它应该是什么样子。当用户在(1)中按下约时,它变为(2),当用户按下(2)中的隐藏时,它再次变为(1)。
如果可能,我想在纯HTML / CSS中执行此操作。有谁知道我怎么能这样做?
答案 0 :(得分:24)
这个答案解释了如何完全实现:Pure CSS collapse/expand div
这是一个快速简介:
<div class="FAQ">
<a href="#hide1" class="hide" id="hide1">+</a>
<a href="#show1" class="show" id="show1">-</a>
<div class="question"> Question Question Question Question Question Question Question Question Question Question Question? </div>
<div class="list">
<p>Answer Answer Answer Answer Answer Answer Answer Answer Answer Answer Answer Answer Answer Answer Answer Answer Answer Answer </p>
</div>
</div>
CSS
/* source: http://www.ehow.com/how_12214447_make-collapsing-lists-java.html */
.FAQ {
vertical-align: top;
height: auto;
}
.list {
display:none;
height:auto;
margin:0;
float: left;
}
.show {
display: none;
}
.hide:target + .show {
display: inline;
}
.hide:target {
display: none;
}
.hide:target ~ .list {
display:inline;
}
/*style the (+) and (-) */
.hide, .show {
width: 30px;
height: 30px;
border-radius: 30px;
font-size: 20px;
color: #fff;
text-shadow: 0 1px 0 #666;
text-align: center;
text-decoration: none;
box-shadow: 1px 1px 2px #000;
background: #cccbbb;
opacity: .95;
margin-right: 0;
float: left;
margin-bottom: 25px;
}
.hide:hover, .show:hover {
color: #eee;
text-shadow: 0 0 1px #666;
text-decoration: none;
box-shadow: 0 0 4px #222 inset;
opacity: 1;
margin-bottom: 25px;
}
.list p {
height:auto;
margin:0;
}
.question {
float: left;
height: auto;
width: 90%;
line-height: 20px;
padding-left: 20px;
margin-bottom: 25px;
font-style: italic;
}
工作的jsFiddle:
http://jsfiddle.net/dmarvs/94ukA/4/
上述以上所有内容都不是我的工作,只是为了澄清,但它只是表明在Google上找到它是多么容易!!
答案 1 :(得分:4)
你需要litle javascript来触发事件(显示/隐藏div)
<a href="#"> Home </a>
<a class="right" href="javascript:toggle_messege('inline')" id='href_about'> About </a>
<br />
<a class="right hide" href="javascript:toggle_messege('none')" id='hreh_close'> (Close)</a>
<div id='div_messege' class='hide'>Hidden messege to show, Hidden messege to show Hidden messege to show Hidden messege to show</div>
<p>Test Test TestTestTestTestTestTestTest</p>
<p>Test Test TestTestTestTestTestTestTest</p>
<p>Test Test TestTestTestTestTestTestTest</p>
<p>Test Test TestTestTestTestTestTestTest</p>
<p>Test Test TestTestTestTestTestTestTest</p>
CSS
.right {
float:right;
}
.hide {
display:none
}
的javascript
function toggle_messege(type) {
document.getElementById("div_messege").style.display = type;
document.getElementById("hreh_close").style.display = type;
}
选中此选项以运行示例http://codepen.io/faishal/pen/IHEyw