Bird
Raised Fist0
Bootsrapmarkup~5 mins

Horizontal collapse in Bootsrap

Choose your learning style10 modes available
Introduction

Horizontal collapse lets you hide or show content by sliding it left or right. It helps keep pages clean and organized.

To hide a sidebar menu that appears from the left or right.
To show extra options or filters horizontally without cluttering the page.
To create a horizontal accordion effect for content sections.
To save space on small screens by collapsing wide content.
To improve user experience by toggling horizontal panels smoothly.
Syntax
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.

Examples
This example collapses a fixed width panel horizontally.
Bootsrap
<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>
This example uses a percentage width for the collapsible content.
Bootsrap
<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>
Sample Program

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.

Bootsrap
<!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>
OutputSuccess
Important Notes

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.

Summary

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

(1/5)
1. What does the collapse-horizontal class do in Bootstrap?
easy
A. It makes the collapsible content slide left or right instead of up or down.
B. It changes the color of the collapsible content.
C. It disables the collapse functionality.
D. It makes the collapsible content slide up or down.

Solution

  1. Step 1: Understand the role of collapse-horizontal

    This class changes the collapse animation direction from vertical (up/down) to horizontal (left/right).
  2. Step 2: Compare with default collapse behavior

    By default, Bootstrap collapses content vertically. Adding collapse-horizontal changes this to horizontal sliding.
  3. Final Answer:

    It makes the collapsible content slide left or right instead of up or down. -> Option A
  4. Quick Check:

    collapse-horizontal = horizontal slide [OK]
Hint: Remember: horizontal means left-right slide, not up-down [OK]
Common Mistakes:
  • Thinking it changes color or disables collapse
  • Confusing horizontal with vertical collapse
  • Assuming it works without Bootstrap JS
2. Which of the following is the correct way to start a horizontal collapse in Bootstrap?
easy
A. <div class='collapse-vertical' id='myCollapse'></div>
B. <div class='horizontal-collapse' id='myCollapse'></div>
C. <div class='collapse-horizontal'></div>
D. <div class='collapse collapse-horizontal' id='myCollapse'></div>

Solution

  1. Step 1: Identify correct Bootstrap classes for horizontal collapse

    The correct classes are collapse and collapse-horizontal together on the element.
  2. 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.
  3. Final Answer:

    <div class='collapse collapse-horizontal' id='myCollapse'></div> -> Option D
  4. Quick Check:

    Use both collapse and collapse-horizontal classes [OK]
Hint: Always combine collapse with collapse-horizontal for horizontal effect [OK]
Common Mistakes:
  • Using only collapse-horizontal without collapse
  • Using wrong class names like collapse-vertical
  • Missing the id attribute for toggling
3. Given this code snippet, what will happen when the button is clicked?
<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>
medium
A. The content slides vertically, expanding or collapsing height.
B. The content slides horizontally, expanding or collapsing width.
C. Nothing happens because width is set inline.
D. The button causes a page reload.

Solution

  1. Step 1: Analyze the collapse classes and attributes

    The div has collapse and collapse-horizontal classes, so it will collapse horizontally.
  2. 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.
  3. Final Answer:

    The content slides horizontally, expanding or collapsing width. -> Option B
  4. Quick Check:

    collapse-horizontal + width = horizontal slide [OK]
Hint: Horizontal collapse needs width set to animate properly [OK]
Common Mistakes:
  • Assuming vertical slide happens by default
  • Thinking inline width disables collapse
  • Expecting page reload on button click
4. What is wrong with this horizontal collapse code?
<div class='collapse-horizontal' id='myCollapse'>Content</div>
<button data-bs-toggle='collapse' data-bs-target='#myCollapse'>Toggle</button>
medium
A. Missing the main collapse class on the div.
B. Button is missing the type='button' attribute.
C. The id attribute should be on the button, not the div.
D. The collapse-horizontal class should be on the button.

Solution

  1. Step 1: Check required classes for collapse

    Bootstrap requires the collapse class on the collapsible element for functionality.
  2. Step 2: Identify missing class in code

    The div only has collapse-horizontal but lacks collapse, so it won't collapse properly.
  3. Final Answer:

    Missing the main collapse class on the div. -> Option A
  4. Quick Check:

    collapse class is mandatory for collapse [OK]
Hint: Always include collapse class with collapse-horizontal [OK]
Common Mistakes:
  • Forgetting the collapse class
  • Misplacing id attribute
  • Assuming button needs collapse-horizontal
5. You want to create a horizontal collapse panel that starts collapsed and expands to 300px wide when toggled. Which code snippet correctly achieves this with accessibility in mind?
hard
A.
<button class='btn btn-info' type='button' data-bs-toggle='collapse' data-bs-target='#panel'>Toggle Panel</button>
<div class='collapse collapse-horizontal' id='panel' style='height: 300px;'>Panel Content</div>
B.
<button class='btn btn-info' data-toggle='collapse' data-target='#panel'>Toggle Panel</button>
<div class='collapse-horizontal' id='panel' style='width: 300px;'>Panel Content</div>
C.
<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>
D.
<button class='btn btn-info' type='button' data-bs-toggle='collapse' data-bs-target='#panel' aria-expanded='true' aria-controls='panel'>Toggle Panel</button>
<div class='collapse collapse-horizontal' id='panel' style='width: 300px;'>Panel Content</div>

Solution

  1. 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>
    includes aria-expanded='false' and aria-controls='panel', which help screen readers understand the toggle state.
  2. Step 2: Verify collapse classes and styles

    The div has both collapse and collapse-horizontal classes and sets width to 300px, which is correct for horizontal collapse.
  3. 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 C
  4. Quick Check:

    Use aria attributes + collapse + collapse-horizontal + width [OK]
Hint: Add aria-expanded and aria-controls for accessible toggles [OK]
Common Mistakes:
  • Using data-toggle instead of data-bs-toggle
  • Setting height instead of width for horizontal collapse
  • Missing aria attributes for accessibility
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard