CSS3 Accordion (No Javascript) - Horizontal
Pure HTML/CSS3 accordion using absolutely no javascript.
This version uses horizontal accordion type allowing one panels to be visible at a time.
HTML
<div class="accordion horizontal">
<ul>
<li>
<input type="radio" id="vert-1" name="vert-accordion" checked="checked" />
<label for="vert-1">Thema 1</label>
<div class="content">
<h3>Wie...</h3>
<p>Klick hier, damit du die Information siehst</p>
</div>
</a>
</li>
<li>
<input type="radio" id="vert-2" name="vert-accordion" />
<label for="vert-2">Thema 2</label>
<div class="content">
<h3>Wie...</h3>
<p>Klick hier, damit du die Erklärung siehst</p>
<a href="http://jsfiddle.net/dirkk0/kctub50f/47/show/"
target=_blank></a>
</div>
</li>
<li>
<input type="radio" id="vert-3" name="vert-accordion" />
<label for="vert-3">Thema 3</label>
<div class="content">
<h3>Klar?</h3>
<p>Für neugierige Schüler:</p>
<p>Wie machen wir den Stundenplan?</p>
<p>Wow! Hier können Sie angucken.</p>
</div>
</li>
<li>
<input type="radio" id="vert-4" name="vert-accordion" />
<label for="vert-4">Thema 4</label>
<div class="content">
<h3>Nah! Du bist ganz bereit?</h3>
<p>Na los!!!</p>
<p>Gerade nach deinem Stundenplan...</p>
</div>
<a href="http://jsfiddle.net/dirkk0/6xbysnjs/18/show/">
</a>
</li>
</ul>
</div>
CSS
.accordion {
font-family:Arial, Helvetica, sans-serif;
margin:0 auto;
font-size:14px;
border:1px solid #542437;
border-radius:10px;
width:600px;
padding:10px;
background:#fff;
}
.accordion ul {
list-style:none;
margin:0;
padding:0;
}
.accordion li {
margin:0;
padding:0;
}
.accordion [type=radio], .accordion [type=checkbox] {
display:none;
}
.accordion label {
display:block;
font-size:16px;
line-height:16px;
background:#D95B43;
border:1px solid #542437;
color:#542437;
text-shadow:1px 1px 1px rgba(255,255,255,0.3);
font-weight:700;
cursor:pointer;
text-transform:uppercase;
-webkit-transition: all .2s ease-out;
-moz-transition: all .2s ease-out;
}
.accordion ul li label:hover, .accordion [type=radio]:checked ~ label, .accordion [type=checkbox]:checked ~ label {
background:#C02942;
color:#FFF;
text-shadow:1px 1px 1px rgba(0,0,0,0.5)
}
.accordion .content {
padding:0 10px;
overflow:hidden;
border:1px solid #fff; /* Make the border match the background so it fades in nicely */
-webkit-transition: all .5s ease-out;
-moz-transition: all .5s ease-out;
}
.accordion p {
color:#333;
margin:0 0 10px;
}
.accordion h3 {
color:#542437;
padding:0;
margin:10px 0;
}
/* Horizontal */
/* Unfortunately fixed heights need to be set for this */
.horizontal {
overflow:hidden;
height:300px;
}
.horizontal ul li {
float:left;
margin:0 1px 0 0;
}
.horizontal ul li label {
word-wrap:break-word;
letter-spacing:10px;
text-align:center;
height:280px;
padding:10px 0 10px 5px;
width:25px;
float:left;
}
.horizontal ul li .content {
height:300px;
padding:0;
display:inline-block; /* Makes its work in FF */
visibility:hidden; /* Chrome bug cant show width < 1px for some reason so need to toggle visibility */
width:1px;
border-left:0;
}
.horizontal [type=radio]:checked ~ label...