Default 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.
<div class="hstack gap-2">
<a class="btn btn-primary mb-2" data-bs-toggle="collapse" href="#collapseExample" role="button" aria-expanded="false" aria-controls="collapseExample">
Link with href
</a>
<button class="btn btn-primary mb-2" type="button" data-bs-toggle="collapse" data-bs-target="#collapseExample" aria-expanded="false" aria-controls="collapseExample">
Button with data-bs-target
</button>
</div>
<div class="collapse" id="collapseExample">
<div class="card mb-0">
<div class="card-body">
Some placeholder content for the collapse component. This panel is hidden by default but revealed when the
user activates the relevant trigger.
</div>
</div>
</div>
Horizontal #
The collapse plugin also supports horizontal collapsing. Add the .collapse-horizontal
modifier class to transition the width
instead of height
and set a width
on the immediate child element. Feel free to write your own custom Sass, use inline styles, or use our width utilities.
<button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target="#collapseWidthExample" aria-expanded="false" aria-controls="collapseWidthExample">
Toggle width collapse
</button>
<div style="min-height: 135px;">
<div class="collapse collapse-horizontal" id="collapseWidthExample">
<div class="card card-body mb-0" style="width: 300px;">
This is some placeholder content for a horizontal collapse. It's hidden by default and shown when triggered.
</div>
</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
<div class="hstack gap-2 mb-3">
<a class="btn btn-primary" data-bs-toggle="collapse" href="#multiCollapseExample1" role="button" aria-expanded="false" aria-controls="multiCollapseExample1">Toggle first element</a>
<button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target="#multiCollapseExample2" aria-expanded="false" aria-controls="multiCollapseExample2">Toggle second element</button>
<button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target=".multi-collapse" aria-expanded="false" aria-controls="multiCollapseExample1 multiCollapseExample2">Toggle both elements</button>
</div>
<div class="row">
<div class="col">
<div class="collapse multi-collapse" id="multiCollapseExample1">
<div class="card card-body">
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">
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>