【发布时间】:2016-09-08 04:09:05
【问题描述】:
我已经通过其他帖子试图找到这个问题的答案,但无济于事。我正在尝试创建一个常见问题解答页面,其中包含一个带有隐藏答案的问题列表,当单击问题(即切换 + 标签)时会出现这些问题。
我已经成功创建了这个;
.message1{height:0px;font-size:0%;}
#toggle:checked ~ .message1 {height:100px;font-size: 100%;}>
允许我在点击问题(切换)时召唤每个问题的答案。
我无法实现的是一种方法,可以在选择多个切换时阻止答案彼此的答案。 如果您测试下面的代码并单击 toggle1、toggle2 和 toggle3,您将看到问题。
欢迎提出任何建议,在此先感谢所有花时间在这方面的人。
下面是html:
<input type="checkbox" name="toggle1" id="toggle1" />
<label for="toggle1"><p class ="question">This is the first question</p></label>
<div class="message1">
<p class = "answer">
Answer text, Answer text, Answer text, Answer text, Answer text, Answer text, Answer text,
Answer text, v Answer text, Answer text, Answer text, Answer text, Answer text, Answer text.
</p>
</div>
<input type="checkbox" name="toggle2" id="toggle2" />
<label for="toggle2"><p class ="question">This is the second question</p></label>
<div class="message2">
<p class = "answer">
Answer text, Answer text, Answer text, Answer text, Answer text, Answer text, Answer text,
Answer text, v Answer text, Answer text, Answer text, Answer text, Answer text, Answer text.
</p>
</div>
<input type="checkbox" name="toggle3" id="toggle3" />
<label for="toggle3"><p class ="question">This is the third question</p></label>
<div class="message3">
<p class = "answer">
Answer text, Answer text, Answer text, Answer text, Answer text, Answer text, Answer text,
Answer text, v Answer text, Answer text, Answer text, Answer text, Answer text, Answer text.
</p>
</div>
还有css:
p.question{
color: #0061b5;
font-size: 200%;
font-family:'Questrial',sans-serif;
line-height: 2.0;
}
p.answer{
color:#181818;
font-size: 150%;
font-family:'Questrial',sans-serif;
line-height: 2.0;
transition: color 0.05s ease-in;
}
#toggle1,
#toggle2,
#toggle3{
position:absolute;
appearance:none;
left:-100%;
top:-100%;
}
#toggle1 + label {
margin: 0% 0% 3% 3%;
width: 40em;
height: 5em;
position:absolute;
cursor:pointer;
border: 1px solid blue;
}
.message1 {
margin: 3.5% 0% 0.5% 3%;
padding: 0%;
position: absolute;
width: 60%;
height: 0px;
transition: all 600ms cubic-bezier(0.17, 0.04, 0.03, 0.94);
border: solid 0px #000000;
font-size: 0%;
}
#toggle1:checked ~ .message1 {
font-size: 100%;
height: 100px;
padding: 0.5%;
border: 1px solid red;
}
#toggle1:checked ~ #toggle2 + label {top: 12%;}
#toggle1:checked ~ .message2 {top: 15%;}
#toggle1:checked ~ #toggle3 + label{top:15%;}
#toggle1:checked ~ .message3 {top:21%;}
#toggle2 + label {
margin: 5% 0% 3% 3%;
width: 40em;
height: 5em;
position:absolute;
cursor:pointer;
transition: margin-top 100ms ease-in;
border: 1px solid blue;
}
.message2 {
margin: 9% 0% 0.5% 3%;
padding: 0%;
position: absolute;
width: 60%;
height: 0px;
transition: all 600ms cubic-bezier(0.17, 0.04, 0.03, 0.94);
border: solid 0px #000000;
font-size: 0%;
}
#toggle2:checked ~ .message2 {
font-size: 100%;
height: 100px;
padding: 0.5%;
border: 1px solid red;
}
#toggle2:checked ~ #toggle3 + label {top: 15%;}
#toggle2:checked ~ .message3 {top: 15%;}
#toggle3 + label {
margin: 10% 0% 3% 3%;
width: 40em;
height: 8em;
position:absolute;
cursor:pointer;
transition: margin-top 200ms ease-in;
border: 1px solid blue;
}
.message3 {
margin: 16% 0% 0.5% 3%;
padding: 0%;
position: absolute;
width: 60%;
height: 0px;
transition: all 600ms cubic-bezier(0.17, 0.04, 0.03, 0.94);
border: solid 0px #000000;
font-size: 0%;
}
#toggle3:checked ~ .message3 {
font-size: 100%;
height: 180px;
padding: 0.5%;
border: 1px solid red;
}
【问题讨论】:
-
position: absolute使用不当。 :( -
谢谢,我会解决的:)
标签: css checkbox label toggle transition