Horizontal collapse lets you hide or show content by sliding it left or right. It helps keep pages clean and organized.
Horizontal collapse in Bootsrap
<button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target="#collapseExample" aria-expanded="false" aria-controls="collapseExample"> Toggle Horizontal Collapse </button> <div class="collapse collapse-horizontal" id="collapseExample"> <div class="card card-body"> This content collapses horizontally. </div> </div>
Use collapse-horizontal class on the collapsible element to enable horizontal sliding.
The data-bs-target attribute links the button to the collapsible content by ID.
<button class="btn btn-secondary" type="button" data-bs-toggle="collapse" data-bs-target="#collapseWidth" aria-expanded="false" aria-controls="collapseWidth"> Toggle Width </button> <div class="collapse collapse-horizontal" id="collapseWidth"> <div class="bg-light border" style="width: 200px;"> Collapsible content with fixed width. </div> </div>
<button class="btn btn-success" type="button" data-bs-toggle="collapse" data-bs-target="#collapseFlex" aria-expanded="false" aria-controls="collapseFlex"> Toggle Flexible Width </button> <div class="collapse collapse-horizontal" id="collapseFlex"> <div class="p-3 bg-info text-white" style="width: 50%;"> Collapsible content with 50% width. </div> </div>
This page shows a button that toggles a sidebar sliding horizontally. The sidebar is 250px wide and collapses smoothly from the left side. The main content stays visible next to it.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>Bootstrap Horizontal Collapse Example</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" /> </head> <body> <main class="container py-4"> <h1>Horizontal Collapse Demo</h1> <button class="btn btn-primary mb-3" type="button" data-bs-toggle="collapse" data-bs-target="#horizontalCollapse" aria-expanded="false" aria-controls="horizontalCollapse"> Toggle Sidebar </button> <div class="d-flex"> <div class="collapse collapse-horizontal" id="horizontalCollapse"> <div class="card card-body" style="width: 250px;"> This sidebar slides in and out horizontally. </div> </div> <div class="flex-grow-1 ms-3"> <p>Main content area stays visible while sidebar collapses.</p> </div> </div> </main> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script> </body> </html>
Make sure to include Bootstrap's JavaScript bundle for the collapse to work.
Set a fixed or percentage width on the collapsible content for horizontal collapse to show properly.
Use aria-expanded and aria-controls for accessibility so screen readers understand the toggle.
Horizontal collapse hides or shows content by sliding it left or right.
Use collapse-horizontal class with Bootstrap collapse component.
Set width on the collapsible content and include Bootstrap JS for it to work smoothly.
Practice
collapse-horizontal class do in Bootstrap?Solution
Step 1: Understand the role of
This class changes the collapse animation direction from vertical (up/down) to horizontal (left/right).collapse-horizontalStep 2: Compare with default collapse behavior
By default, Bootstrap collapses content vertically. Addingcollapse-horizontalchanges this to horizontal sliding.Final Answer:
It makes the collapsible content slide left or right instead of up or down. -> Option AQuick Check:
collapse-horizontal = horizontal slide [OK]
- Thinking it changes color or disables collapse
- Confusing horizontal with vertical collapse
- Assuming it works without Bootstrap JS
Solution
Step 1: Identify correct Bootstrap classes for horizontal collapse
The correct classes arecollapseandcollapse-horizontaltogether on the element.Step 2: Check the syntax of options
<div class='collapse collapse-horizontal' id='myCollapse'></div>uses both classes and includes an id for toggling, which is required for Bootstrap collapse to work.Final Answer:
<div class='collapse collapse-horizontal' id='myCollapse'></div> -> Option DQuick Check:
Use both collapse and collapse-horizontal classes [OK]
- Using only collapse-horizontal without collapse
- Using wrong class names like collapse-vertical
- Missing the id attribute for toggling
<button class='btn btn-primary' type='button' data-bs-toggle='collapse' data-bs-target='#collapseExample'>Toggle</button> <div class='collapse collapse-horizontal' id='collapseExample' style='width: 200px;'>Content</div>
Solution
Step 1: Analyze the collapse classes and attributes
The div hascollapseandcollapse-horizontalclasses, so it will collapse horizontally.Step 2: Understand the effect of inline width
The inline style sets width to 200px, which is necessary for horizontal collapse to know the size to expand or collapse.Final Answer:
The content slides horizontally, expanding or collapsing width. -> Option BQuick Check:
collapse-horizontal + width = horizontal slide [OK]
- Assuming vertical slide happens by default
- Thinking inline width disables collapse
- Expecting page reload on button click
<div class='collapse-horizontal' id='myCollapse'>Content</div> <button data-bs-toggle='collapse' data-bs-target='#myCollapse'>Toggle</button>
Solution
Step 1: Check required classes for collapse
Bootstrap requires thecollapseclass on the collapsible element for functionality.Step 2: Identify missing class in code
The div only hascollapse-horizontalbut lackscollapse, so it won't collapse properly.Final Answer:
Missing the maincollapseclass on the div. -> Option AQuick Check:
collapse class is mandatory for collapse [OK]
- Forgetting the collapse class
- Misplacing id attribute
- Assuming button needs collapse-horizontal
Solution
Step 1: Check button attributes for accessibility
<button class='btn btn-info' type='button' data-bs-toggle='collapse' data-bs-target='#panel' aria-expanded='false' aria-controls='panel'>Toggle Panel</button> <div class='collapse collapse-horizontal' id='panel' style='width: 300px;'>Panel Content</div>
includesaria-expanded='false'andaria-controls='panel', which help screen readers understand the toggle state.Step 2: Verify collapse classes and styles
The div has bothcollapseandcollapse-horizontalclasses and sets width to 300px, which is correct for horizontal collapse.Final Answer:
<button class='btn btn-info' type='button' data-bs-toggle='collapse' data-bs-target='#panel' aria-expanded='false' aria-controls='panel'>Toggle Panel</button> <div class='collapse collapse-horizontal' id='panel' style='width: 300px;'>Panel Content</div> -> Option CQuick Check:
Use aria attributes + collapse + collapse-horizontal + width [OK]
- Using data-toggle instead of data-bs-toggle
- Setting height instead of width for horizontal collapse
- Missing aria attributes for accessibility
Ready to prove it?
Pass the test and this pattern moves unknown
