Accordion is the very easy way to put many content in one place. Collapse the heading which content you want to read.
Step 1: Add HTML
<div class="accordionWrap"> <button class="accordionHeading">Lorem Ipsum 1</button> <div class="accordionPanel"> <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry.</p> </div> <button class="accordionHeading">Lorem Ipsum 2</button> <div class="accordionPanel"> <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry.</p> </div> <button class="accordionHeading">Lorem Ipsum 3</button> <div class="accordionPanel"> <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry.</p> </div> </div>
Step 2: Add CSS
.accordionHeading { background-color: #008264; color: #ffffff; cursor: pointer; padding: 12px 30px; width: 100%; text-align: left; border: none; outline: none; margin-bottom: 8px; font-family: 'Poppins', sans-serif; font-weight: 600; font-size: 20px; line-height: 32px; border-radius: 10px; transition: background-color 0.3s ease-in-out; } .accordionHeading:hover, .accordionHeading.open { background-color:#036851; } .accordionHeading:after { content: '\02795'; /* Unicode character for "plus" sign (+) */ color: #fff; float: right; margin-left: 5px; } .accordionHeading.open:after { content: "\2796"; /* Unicode character for "minus" sign (-) */ } .accordionPanel { padding:0 16px; border-radius:5px; max-height: 0; overflow: hidden; transition: max-height 0.3s ease-in-out; }
Step 3: Add JavaScript
var accordionHeading = document.getElementsByClassName("accordionHeading"); var i; for (i = 0; i < accordionHeading.length; i++) { accordionHeading[i].addEventListener("click", function() { this.classList.toggle("open"); var accordionPanel = this.nextElementSibling; if (accordionPanel.style.maxHeight) { accordionPanel.style.maxHeight = null; } else { accordionPanel.style.maxHeight = accordionPanel.scrollHeight + "px"; } }); }
Checkout Live Demo Accordion