Janmeister
Janmeister

Reputation: 43

Pure CSS accordion toggle

I got a little question about my little code down there. As you can see it's a pure CSS and HTML accordion and works as it should. But I would like it to hide it's content not only when you click on another headline, but also when you click the same headline again.

I didn't use any JavaScript but if there's an easy way to handle these function with, I don't mind either ;-) (as long as there's no jQuery you need to use).

Thanks in advance!!!

body {
        font-family: Helvetica;
        font-size: 17px;
    }
    
    h1 {
        text-align: center;
        font-size: 40px;
    }
    
    label {
        font-weight: 500;
        
        /* Rahmenlinie (Dicke = 1px) */
        border: 1px solid black;
        
        /* Überschriften-Box Farbe RGB-Wert */
        background-color: rgb(219, 219, 219);
        
        border-radius: 3px;
        padding: 7px;
    }
    
    .pfeil{
        font-size: 25px;
    }
    
    label:hover {
        cursor: pointer;
    }
    
    div p{
        color: dimgray;
        font-size: 15px;
        padding-bottom: 5px;
        line-height: 1.5;
    }
    
    .accordion {
        margin-left: auto;
        margin-right: auto;
        width: 90%;
    }
    
    .accordion > label {
        display: block;
    }
    
    .accordion > input {
        display: none;
    }
    
    .accordion > div {
        max-height: 0;
        overflow: hidden;
    }
    
    .accordion > input:checked + label + div {
        max-height: 1000px;
    }
<h1>FAQ</h1>
	
  <div class="accordion">
      
  <input id="acrd1-item1" name="accordion1" type="radio">
  <label for="acrd1-item1"><span class="pfeil">&#8505;</span> Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat</label>
  <div><p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p></div><br>

  <input id="acrd1-item2" name="accordion1" type="radio">
  <label for="acrd1-item2"><span class="pfeil">&#8505;</span> Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat</label>
  <div><p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p></div><br>

  <input id="acrd1-item3" name="accordion1" type="radio">
  <label for="acrd1-item3"><span class="pfeil">&#8505;</span> Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat</label>
  <div><p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p></div><br>
  
</div>

Upvotes: 3

Views: 168

Answers (1)

Lalji Tadhani
Lalji Tadhani

Reputation: 14159

use to input type radio to checkbox

body {
        font-family: Helvetica;
        font-size: 17px;
    }
    
    h1 {
        text-align: center;
        font-size: 40px;
    }
    
    label {
        font-weight: 500;
        
        /* Rahmenlinie (Dicke = 1px) */
        border: 1px solid black;
        
        /* Überschriften-Box Farbe RGB-Wert */
        background-color: rgb(219, 219, 219);
        
        border-radius: 3px;
        padding: 7px;
    }
    
    .pfeil{
        font-size: 25px;
    }
    
    label:hover {
        cursor: pointer;
    }
    
    div p{
        color: dimgray;
        font-size: 15px;
        padding-bottom: 5px;
        line-height: 1.5;
    }
    
    .accordion {
        margin-left: auto;
        margin-right: auto;
        width: 90%;
    }
    
    .accordion > label {
        display: block;
    }
    
    .accordion > input {
        display: none;
    }
    
    .accordion > div {
        max-height: 0;
        overflow: hidden;
    }
    
    .accordion > input:checked + label + div {
        max-height: 1000px;
    }
<h1>FAQ</h1>
	
  <div class="accordion">
      
  <input id="acrd1-item1" name="accordion1" type="checkbox">
  <label for="acrd1-item1"><span class="pfeil">&#8505;</span> Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat</label>
  <div><p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p></div><br>

  <input id="acrd1-item2" name="accordion1" type="checkbox">
  <label for="acrd1-item2"><span class="pfeil">&#8505;</span> Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat</label>
  <div><p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p></div><br>

  <input id="acrd1-item3" name="accordion1" type="checkbox">
  <label for="acrd1-item3"><span class="pfeil">&#8505;</span> Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat</label>
  <div><p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p></div><br>
  
</div>

Upvotes: 2

Related Questions