I've been through other posts to try to find an answer to this to no avail. I'm trying to create a FAQ page with a list of questions with hidden answers that appear when the question i.e. toggle + label is clicked.
I've successfully created this using;
.message1{height:0px;font-size:0%;}
#toggle:checked ~ .message1 {height:100px;font-size: 100%;}>
Allowing me to summon the answer to each question when the question(toggle) is clicked.
What I cannot achieve is a way to stop the answers from running into one another when multiple toggle are selected. If you test the code below and click on both toggle1, toggle2 & toggle3 you will see the problem.
Any suggestions are welcome, thanks in advance to anyone who spends time on this.
Below is the 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>
And the 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;
}
Aucun commentaire:
Enregistrer un commentaire