Collapse
How it works
The collapse JavaScript plugin is used to show and hide content. Buttons or anchors are used as triggers that are mapped to specific elements you toggle. Collapsing an element will animate the height from its current value to 0. Given how CSS handles animations, you cannot use padding on a .collapse element. Instead, use the class as an independent wrapping element.
Example
Click the buttons below to show and hide another element via class changes:
- .collapse hides content
- .collapsing is applied during transitions
- .collapse.show shows content
Generally, we recommend using a button with the data-bs-target attribute. While not recommended from a semantic point of view, you can also use a link with the href attribute (and a role="button"). In both cases, the data-bs-toggle="collapse" is required.
<a class="btn btn-primary" data-bs-toggle="collapse" href="#collapseExample-1"> Link with href </a> <button class="btn btn-primary" data-bs-toggle="collapse" data-bs-target="#collapseExample-1"> Button with data-bs-target </button> <div class="collapse" id="collapseExample-1"> <div class="card card-body mt-4 mb-0"> Some placeholder content for the collapse component. This panel is hidden by default but revealed when the user activates the relevant trigger. </div> </div>
Multiple targets
A <button> or <a> can show and hide multiple elements by referencing them with a selector in its href or data-bs-target attribute. Multiple <button> or <a> can show and hide an element if they each reference it with their href or data-bs-target attribute.
<a class="btn btn-primary" data-bs-toggle="collapse" href="#multiCollapseExample1">Toggle first element</a> <button class="btn btn-primary" data-bs-toggle="collapse" data-bs-target="#multiCollapseExample2">Toggle second element</button> <button class="btn btn-primary" data-bs-toggle="collapse" data-bs-target=".multi-collapse">Toggle both elements</button> <div class="row"> <div class="col"> <div class="collapse multi-collapse" id="multiCollapseExample1"> <div class="card card-body mt-4 mb-0"> Some placeholder content for the first collapse component of this multi-collapse example. This panel is hidden by default but revealed when the user activates the relevant trigger. </div> </div> </div> <div class="col"> <div class="collapse multi-collapse" id="multiCollapseExample2"> <div class="card card-body mt-4 mb-0"> Some placeholder content for the second collapse component of this multi-collapse example. This panel is hidden by default but revealed when the user activates the relevant trigger. </div> </div> </div> </div>