BS5 Collapse
Bootstrap 5 Collapse provides a simple and elegant way to toggle the visibility of content. It can be used for accordions, toggleable sections, and more.
Key Topics
Basic Collapse
Create a collapsible element using the .collapse
class and a toggle button.
<button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target="#collapseExample" aria-expanded="false" aria-controls="collapseExample">
Toggle Content
</button>
<div class="collapse" id="collapseExample">
<div class="card card-body">
This is collapsible content.
</div>
</div>
Explanation: The data-bs-toggle
attribute toggles the collapse, while data-bs-target
specifies the target element.
Accordion
Accordions are collapsible elements grouped together. Use the .accordion
class to group collapsible content.
<div class="accordion" id="accordionExample">
<div class="accordion-item">
<h2 class="accordion-header" id="headingOne">
<button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
Accordion Item #1
</button>
</h2>
<div id="collapseOne" class="accordion-collapse collapse show" aria-labelledby="headingOne" data-bs-parent="#accordionExample">
<div class="accordion-body">
Content for item #1.
</div>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header" id="headingTwo">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
Accordion Item #2
</button>
</h2>
<div id="collapseTwo" class="accordion-collapse collapse" aria-labelledby="headingTwo" data-bs-parent="#accordionExample">
<div class="accordion-body">
Content for item #2.
</div>
</div>
</div>
</div>
Explanation: Accordions use data-bs-parent
to ensure only one item is expanded at a time.
Nested Collapse
Nest collapsible elements inside other collapsible containers for complex layouts.
<div class="collapse" id="parentCollapse">
<div class="card card-body">
Parent content.
<button class="btn btn-secondary" type="button" data-bs-toggle="collapse" data-bs-target="#nestedCollapse">
Toggle Nested Content
</button>
<div class="collapse" id="nestedCollapse">
Nested content here.
</div>
</div>
</div>
Explanation: Nest collapsible elements by placing one collapse inside another with separate toggle buttons.
Complete Collapse Example
This example combines basic collapse, accordion, and nested collapse functionality in one layout.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Bootstrap 5 Collapse Demo</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container my-4">
<h2>Bootstrap Collapse</h2>
<h3>Basic Collapse</h3>
<button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target="#collapseExample" aria-expanded="false" aria-controls="collapseExample">
Toggle Content
</button>
<div class="collapse" id="collapseExample">
<div class="card card-body">
This is collapsible content.
</div>
</div>
<h3>Accordion</h3>
<div class="accordion" id="accordionExample">
<div class="accordion-item">
<h2 class="accordion-header" id="headingOne">
<button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
Accordion Item #1
</button>
</h2>
<div id="collapseOne" class="accordion-collapse collapse show" aria-labelledby="headingOne" data-bs-parent="#accordionExample">
<div class="accordion-body">
Content for item #1.
</div>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header" id="headingTwo">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
Accordion Item #2
</button>
</h2>
<div id="collapseTwo" class="accordion-collapse collapse" aria-labelledby="headingTwo" data-bs-parent="#accordionExample">
<div class="accordion-body">
Content for item #2.
</div>
</div>
</div>
</div>
<h3>Nested Collapse</h3>
<div class="collapse" id="parentCollapse">
<div class="card card-body">
Parent content.
<button class="btn btn-secondary" type="button" data-bs-toggle="collapse" data-bs-target="#nestedCollapse">
Toggle Nested Content
</button>
<div class="collapse" id="nestedCollapse">
Nested content here.
</div>
</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>
Explanation: This example combines basic collapse, accordion, and nested collapse for a comprehensive demonstration.
Key Takeaways
- Use
.collapse
for toggleable sections. - Create grouped collapsible elements with
.accordion
. - Support complex layouts using nested collapsibles.