Show Output
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <title>Bootstrap Accordion Menu with Plus Minus Icon</title> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:400,500|Open+Sans"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css"> <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css"> <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js"></script> <style> body { background: #2bba9e; } .accordion { margin-top: 60px; /* Add space above accordion */ } .accordion .card { border-radius: 0; border-width: 1px 0 1px 0; } .accordion .card:first-child { border-top: none; } .accordion .card .card-header { background: #fff; padding-top: 7px; padding-bottom: 7px; border-radius: 0; margin-bottom: -2px; font-family: "Roboto", sans-serif; } .accordion .card-header:hover { background: #f8f8f8; } .accordion .card-header h2 span { float: left; margin-top: 10px; } .accordion .card-header .btn { font-size: 1.04rem; font-weight: 500; width: 100%; text-align: left; position: relative; top: -2px; } .accordion .card-header i { float: right; font-size: 1.3rem; font-weight: bold; position: relative; top: 5px; } .accordion .card-header button:hover { color: #23384e; } .accordion .card-body { background: #eaeaea; color: #595959; } .accordion .highlight { color: #fff; background: #202d3c !important; } </style> <script> $(document).ready(function(){ // Add minus icon for collapse element which is open by default $(".collapse.show").each(function(){ $(this).siblings(".card-header").find(".btn i").html("remove"); $(this).prev(".card-header").addClass("highlight"); }); // Toggle plus minus icon on show hide of collapse element $(".collapse").on('show.bs.collapse', function(){ $(this).parent().find(".card-header .btn i").html("remove"); }).on('hide.bs.collapse', function(){ $(this).parent().find(".card-header .btn i").html("add"); }); // Highlight open collapsed element $(".card-header .btn").click(function(){ $(".card-header").not($(this).parents()).removeClass("highlight"); $(this).parents(".card-header").toggleClass("highlight"); }); }); </script> </head> <body> <div class="container-lg"> <div class="row"> <div class="col-lg-8 offset-lg-2"> <div class="accordion" id="accordionExample"> <div class="card"> <div class="card-header" id="headingOne"> <h2 class="clearfix mb-0"> <a class="btn btn-link" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">Collapsible Group Item #1 <i class="material-icons">add</i></a> </h2> </div> <div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordionExample"> <div class="card-body">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam eu sem tempor, varius quam at, luctus dui. Mauris magna metus, dapibus nec turpis vel, semper malesuada ante. Vestibulum id metus ac nisl bibendum scelerisque non non purus. Suspendisse varius nibh non aliquet sagittis. In tincidunt orci sit amet elementum vestibulum.</div> </div> </div> <div class="card"> <div class="card-header" id="headingTwo"> <h2 class="mb-0"> <a class="btn btn-link collapsed" data-toggle="collapse" data-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">Collapsible Group Item #2 <i class="material-icons">add</i></a> </h2> </div> <div id="collapseTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionExample"> <div class="card-body">Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et.</div> </div> </div> <div class="card"> <div class="card-header" id="headingThree"> <h2 class="mb-0"> <a class="btn btn-link collapsed" data-toggle="collapse" data-target="#collapseThree" aria-expanded="false" aria-controls="collapseThree">Collapsible Group Item #3 <i class="material-icons">add</i></a> </h2> </div> <div id="collapseThree" class="collapse" aria-labelledby="headingThree" data-parent="#accordionExample"> <div class="card-body">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam eu sem tempor, varius quam at, luctus dui. Mauris magna metus, dapibus nec turpis vel, semper malesuada ante. Vestibulum id metus ac nisl bibendum scelerisque non non purus. Suspendisse varius nibh non aliquet sagittis. In tincidunt orci sit amet elementum vestibulum.</div> </div> </div> <div class="card"> <div class="card-header" id="headingFour"> <h2 class="mb-0"> <a class="btn btn-link collapsed" data-toggle="collapse" data-target="#collapseFour" aria-expanded="false" aria-controls="collapseFour">Collapsible Group Item #4 <i class="material-icons">add</i></a> </h2> </div> <div id="collapseFour" class="collapse" aria-labelledby="headingFour" data-parent="#accordionExample"> <div class="card-body">Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et.</div> </div> </div> </div> </div> </div> </div> </body> </html>