• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Spoiler (durch Checkbox)

BMicraft

Neues Mitglied
Ich hätte da mal wieder ein kleines Problem:
Ich habe versucht, mit CSS einen Spoiler zu erstellen:
(Bitte kommt mir nicht mit: "Dafür verwendet man aber JS." Ich weiß, aber weil es gehen muss will ich es so machen)

Ich verwende eine versteckte Checkbox, welche aktiviert wird, sobald man auf SPOILER klickt.
Beim bei angehakter Checkbox soll sich per transition ein div auf schieben und nun den Inhalt anzeigen
Habe das bisher so gemacht:

HTML:
<div id="spoiler">
    <input type="checkbox" id="toggle_visibility_box">
    <label for="toggle_visibility_box" id="toggle_visibility">all versions</label>
    <div id="content">
        <article>
            <p1>1</p1>
            <br />
            <p1>2</p1>
            <br />
            <p1>3</p1>
            <br />
            <p1>4</p1>
            <br />
           <p1>5</p1>
        </article>
    </div>
</div>

nun CSS:
Code:
#spoiler {
    background:blue
}
#toggle_visibility_box {
    display: none;
}
#toggle_visibility {
    cursor: pointer;
    background: green;
}
#content {
    height:0px;
    font-size:0px;
    line-height:0px;
    transition:height 2s, font-size 2s, line-height 2s;
    display:block;
    background:red
}
#toggle_visibility_box:checked + #content {
    height:auto;
    font-size:20px;
    line-height:20px
}

Hier das Ganze nochmal auf JSFIDDLE

Danke schonmal für eure Antworten
 
Zuletzt bearbeitet:
Naja, du kannst gerne nach "CSS3 Click-Event" googeln und schauen, ob du damit eine Lösung hinbekommst. Aber prinzipiell ist das natürlich eine JavaScript-Aufgabe.
 
Falls es euch schon mal aufgefallen ist, ich habe das mit dem clickevent/:checked im Code!
Ich finde nur den Fehler nicht :/
 
Du schreibst #toggle_visibility_box:checked + #content, das entspricht aber nicht deinem HTML-Markup. "+" meint das direkt folgende Schwesterelement, im Markup hast du aber noch ein <label> dazwischen.
 
Hallo,

entweder so
Code:
#toggle_visibility_box:checked + label + #content {
    height:auto;
    font-size:20px;
    line-height:20px
}

Oder so
Code:
#toggle_visibility_box:checked ~ #content {
    height:auto;
    font-size:20px;
    line-height:20px
}
 
Danke, für deinen zweiten Code-Ausschnitt;
Der erste hat zwar irgendwie nicht funktioniert, aber mir ist der zweite eh lieber.
Danke, nochmal sieht jetzt so aus: JsFIDDLE
 
Zurück
Oben