Le composant accordéon est un dérivé du composant 'collapse' de Bootstrap qui permet de modifier la visibilité de certains contenus. La fermeture ou l'ouverture d'un panneau crée une animation sur l'attribut height. Etant donné les limitations des animations css, l'élément .collapse ne peut pas porter de padding. Il faut l'utiliser comme un wrapper.
height
.collapse
padding
L'élément actif du composant collapse est désigné par l'attribut data-toggle="collapse", il référence l'id de sa cible par son attribut href ou data-target.
data-toggle="collapse"
href
data-target
Les classes suivantes sont appliqués à l'élément masquable :
.collapsing
.collapse.show
Lien avec href bouton avec data-target
<p> <a class="btn btn-primary" data-toggle="collapse" href="#collapseExample" role="button" aria-expanded="false" aria-controls="collapseExample"> Lien avec href </a> <button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#collapseExample" aria-expanded="false" aria-controls="collapseExample"> bouton avec data-target </button> </p> <div class="collapse" id="collapseExample"> <div class="card card-body"> … </div> </div>
Un élément actif peut cibler plusieurs élements masquable en les référençant à l'aide un selecteur Jquery dans son attribut href ou data-target. Les eléments masquables peuvent également être ciblés par plusieurs éléments actifs.
Masque/affiche le premier élément Masque/affiche le second élément Masque/affiche les deux éléments
<p> <a class="btn btn-primary" data-toggle="collapse" href="#multiCollapseExample1" role="button" aria-expanded="false" aria-controls="multiCollapseExample1">Masque/affiche le premier élément</a> <button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#multiCollapseExample2" aria-expanded="false" aria-controls="multiCollapseExample2">Masque/affiche le second élément</button> <button class="btn btn-primary" type="button" data-toggle="collapse" data-target=".multi-collapse" aria-expanded="false" aria-controls="multiCollapseExample1 multiCollapseExample2">Masque/affiche les deux éléments</button> </p> <div class="row"> <div class="col"> <div class="collapse multi-collapse" id="multiCollapseExample1"> <div class="card card-body"> … </div> </div> </div> <div class="col"> <div class="collapse multi-collapse" id="multiCollapseExample2"> <div class="card card-body"> … </div> </div> </div> </div>
L'élément collapse peut servir à créer des sections pliables/dépliables. Ajouter la classe ".toggle-down" au titre pour afficher l'îcone.
<h2> <a class="toggle-down" data-toggle="collapse" data-target="#section-masquable" aria-expanded="true" aria-controls="etion-masquable" role="button">…</a> </h2> <div class="collapse show in" id="section-masquable"> <div class="card card-body"> … </div> </div>
Le parent commun d'un groupe de composants collapse permet de créer un comportement d'accordéon. Il suffit de référencer le parent dans l'attribut data-parent des élément actifs de chaque composant collapse (méthode Bootstrap 3) ou bien d'assigner la classe .accordion à ce parent (méthode Bootsrap4). Les deux méthodes sont actuellement supportées.
data-parent
.accordion
<div class="panel-group" id="accordion"> <div class="panel panel-default"> <div class="panel-heading"> <h3 class="panel-title"> <a data-toggle="collapse" data-parent="#accordion" href="#collapseOne" class="collapsed" aria-expanded="false"> Collapsible Group Item #1 </a> </h3> </div> <div id="collapseOne" class="panel-collapse in collapse" style=""> <div class="panel-body"> … </div> </div> </div> <div class="panel panel-default"> <div class="panel-heading"> <h3 class="panel-title"> <a data-toggle="collapse" data-parent="#accordion" href="#collapseTwo" class="" aria-expanded="true"> Collapsible Group Item #2 </a> </h3> </div> <div id="collapseTwo" class="panel-collapse collapse show" style=""> <div class="panel-body"> … </div> </div> </div> <div class="panel panel-default"> <div class="panel-heading"> <h3 class="panel-title"> <a data-toggle="collapse" data-parent="#accordion" href="#collapseThree" class="collapsed" aria-expanded="false"> Collapsible Group Item #3 </a> </h3> </div> <div id="collapseThree" class="panel-collapse collapse"> <div class="panel-body"> … </div> </div> </div> </div>
<div class="accordion" id="accordionExample"> <div class="card"> <div class="card-header" id="headingOne"> <h2 class="mb-0"> <button class="btn btn-link" type="button" data-toggle="collapse" data-target="#bs4collapseOne" aria-expanded="true" aria-controls="bs4collapseOne"> Collapsible Group Item #1 </button> </h2> </div> <div id="bs4collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordionExample"> <div class="card-body"> … </div> </div> </div> <div class="card"> <div class="card-header" id="headingTwo"> <h2 class="mb-0"> <button class="btn btn-link collapsed" type="button" data-toggle="collapse" data-target="#bs4collapseTwo" aria-expanded="false" aria-controls="bs4collapseTwo"> Collapsible Group Item #2 </button> </h2> </div> <div id="bs4collapseTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionExample"> <div class="card-body"> … </div> </div> </div> <div class="card"> <div class="card-header" id="headingThree"> <h2 class="mb-0"> <button class="btn btn-link collapsed" type="button" data-toggle="collapse" data-target="#bs4collapseThree" aria-expanded="false" aria-controls="bs4collapseThree"> Collapsible Group Item #3 </button> </h2> </div> <div id="bs4collapseThree" class="collapse" aria-labelledby="headingThree" data-parent="#accordionExample"> <div class="card-body"> … </div> </div> </div> </div>