我想做类似这样的事情,但是当我显示内容时,我希望折叠2保持在折叠1下面。这可能吗?我尝试以不同的方式安排代码,但它只是发疯了。 :d
.collapse{
cursor: pointer;
display: block;
background: #cdf;
}
.collapse + input{
display: none; /* hide the checkboxes */
}
.collapse + input + div{
display:none;
}
.collapse + input:checked + div{
display:block;
}

<label class="collapse" for="_1">Collapse 1</label>
<input id="_1" type="radio" name="c1">
<div>Content 1</div>
<label class="collapse" for="_2">Collapse 2</label>
<input id="_2" type="radio" name="c1">
<div>Content 2</div>
&#13;
答案 0 :(得分:0)
有点棘手,但它的工作!
section {
position: relative;
}
section > .content {
position: absolute;
top:100%;
left: 0;
}
.collapse{
cursor: pointer;
display: block;
background: #cdf;
}
.collapse + input{
display: none; /* hide the checkboxes */
}
.collapse + input + div{
display:none;
}
.collapse + input:checked + div{
display:block;
}
<section>
<label class="collapse" for="_1">Collapse 1</label>
<input id="_1" type="radio" name="c1">
<div class="content">Content 1</div>
<label class="collapse" for="_2">Collapse 2</label>
<input id="_2" type="radio" name="c1">
<div class="content">Content 2</div>
</section>
<强> Fiddle demo 强>
答案 1 :(得分:0)
您的代码实际上非常有用。至于使内容显示在标签之后,这意味着我们必须更改HTML顺序,这意味着我们不能使用加号(相邻的兄弟选择器)。相反,我们使用通用兄弟选择器(〜),你可以在这里阅读更多关于http://www.w3schools.com/css/css_combinators.asp
的信息以下是使用代字号的代码示例。请注意,内容div现在需要某种类型的唯一标识符。
.collapse{
cursor: pointer;
display: block;
background: #cdf;
}
input{
display: none; /* hide the checkboxes */
}
input ~ .content{
display:none;
}
input#_1:checked ~ .content1, input#_2:checked ~ .content2{
display:block;
}
<label class="collapse" for="_1">Collapse 1</label>
<input id="_1" type="radio" name="c1">
<label class="collapse" for="_2">Collapse 2</label>
<input id="_2" type="radio" name="c1">
<div class="content content1">Content 1</div>
<div class="content content2">Content 2</div>