Bird
Raised Fist0
Bootsrapmarkup~15 mins

Collapse component in Bootsrap - Mini Project: Build & Apply

Choose your learning style10 modes available
Create a Bootstrap Collapse Component
📖 Scenario: You want to add a section on your webpage that can show or hide extra information when a user clicks a button. This helps keep your page clean and organized.
🎯 Goal: Build a simple Bootstrap collapse component with a button that toggles the visibility of a content area.
📋 What You'll Learn
Use Bootstrap 5 classes and attributes
Create a button that toggles the collapse
Create a collapsible content section
Ensure the collapse works when the button is clicked
💡 Why This Matters
🌍 Real World
Collapsible sections are common on websites to hide extra details, FAQs, or menus, making pages cleaner and easier to navigate.
💼 Career
Knowing how to use Bootstrap components like collapse helps you quickly build interactive and responsive web pages, a valuable skill for front-end developers.
Progress0 / 4 steps
1
Set up the basic HTML structure with Bootstrap CSS link
Write the basic HTML5 skeleton with lang="en", charset="UTF-8", and viewport meta tag. Include the Bootstrap 5 CSS CDN link inside the <head> section. Add an empty <body> section.
Bootsrap
Hint

Remember to include the Bootstrap CSS link inside the <head> so you can use Bootstrap styles.

2
Add a button to toggle the collapse
Inside the <body>, add a <button> with class btn btn-primary. Give it type="button", data-bs-toggle="collapse", and data-bs-target="#collapseExample" attributes. The button text should be Toggle Content.
Bootsrap
Hint

The button needs data-bs-toggle="collapse" and data-bs-target="#collapseExample" to control the collapse.

3
Add the collapsible content section
Below the button, add a <div> with class="collapse" and id="collapseExample". Inside this div, add a <div> with class="card card-body" containing the text This is the collapsible content.
Bootsrap
Hint

The collapsible content must have class="collapse" and the same id as the button's data-bs-target.

4
Add Bootstrap JavaScript bundle for collapse functionality
Before the closing </body> tag, add a <script> tag that loads the Bootstrap 5 JavaScript bundle from the CDN: https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js. This enables the collapse toggle to work.
Bootsrap
Hint

The Bootstrap JavaScript bundle is needed for the collapse toggle to work. Add it just before the closing </body> tag.

Practice

(1/5)
1. What is the main purpose of the Bootstrap Collapse component?
easy
A. To hide or show content smoothly when a user clicks a control
B. To create a fixed navigation bar at the top of the page
C. To add animations to images on hover
D. To validate form inputs automatically

Solution

  1. Step 1: Understand the Collapse component function

    The Collapse component is designed to toggle visibility of content smoothly, usually triggered by user actions like clicks.
  2. Step 2: Compare options with the component's purpose

    Only To hide or show content smoothly when a user clicks a control describes hiding or showing content smoothly, which matches the Collapse component's role.
  3. Final Answer:

    To hide or show content smoothly when a user clicks a control -> Option A
  4. Quick Check:

    Collapse toggles content visibility = B [OK]
Hint: Collapse means hide/show content smoothly on click [OK]
Common Mistakes:
  • Confusing Collapse with navigation or animation components
  • Thinking Collapse validates forms
  • Assuming Collapse is for styling images
2. Which attribute is required on a button to toggle a Bootstrap Collapse element?
easy
A. data-target="collapse"
B. data-toggle="collapse"
C. data-bs-toggle="collapse"
D. data-bs-target="collapse"

Solution

  1. Step 1: Identify the correct Bootstrap 5 attribute for toggling Collapse

    Bootstrap 5 uses the prefix data-bs- for its JavaScript plugins, so the toggle attribute is data-bs-toggle="collapse".
  2. Step 2: Eliminate outdated or incorrect attributes

    Options A and B use syntax without bs prefix (Bootstrap 4 or earlier). data-bs-target="collapse"'s data-bs-target="collapse" specifies the target element, not the toggle action.
  3. Final Answer:

    data-bs-toggle="collapse" -> Option C
  4. Quick Check:

    Toggle attribute in Bootstrap 5 = data-bs-toggle="collapse" [OK]
Hint: Use data-bs-toggle="collapse" for toggling in Bootstrap 5 [OK]
Common Mistakes:
  • Using data-toggle instead of data-bs-toggle
  • Confusing data-bs-target with toggle attribute
  • Omitting the data-bs prefix
3. What will happen when the button below is clicked?
<button class="btn btn-primary" data-bs-toggle="collapse" data-bs-target="#info">Toggle Info</button>
<div id="info" class="collapse">Hidden content here</div>
medium
A. Nothing will happen because the button lacks a click event
B. The div with id "info" will smoothly appear or disappear
C. The button will change color but content stays hidden
D. The div will be removed from the page permanently

Solution

  1. Step 1: Analyze the button attributes

    The button has data-bs-toggle="collapse" and data-bs-target="#info", linking it to the div with id "info".
  2. Step 2: Understand the effect on the target div

    The div has class "collapse", so clicking the button toggles its visibility with a smooth animation.
  3. Final Answer:

    The div with id "info" will smoothly appear or disappear -> Option B
  4. Quick Check:

    Button toggles collapse div visibility = A [OK]
Hint: Button with data-bs-toggle toggles target collapse div [OK]
Common Mistakes:
  • Thinking button needs JavaScript event handlers manually
  • Assuming button changes style only
  • Believing div is removed instead of toggled
4. Identify the error in this Bootstrap Collapse code snippet:
<button class="btn btn-secondary" data-bs-toggle="collapse" data-bs-target="#panel">Show</button>
<div id="panel" class="collaps">Content</div>
medium
A. The div has a typo in the class name; it should be "collapse"
B. The button is missing the data-bs-toggle attribute
C. The div id does not match the data-bs-target
D. The button should use data-toggle instead of data-bs-toggle

Solution

  1. Step 1: Check the button attributes

    The button correctly uses data-bs-toggle="collapse" and targets #panel.
  2. Step 2: Inspect the div class and id

    The div has id "panel" matching the target, but the class is "collaps" instead of "collapse". This typo prevents the collapse behavior.
  3. Final Answer:

    The div has a typo in the class name; it should be "collapse" -> Option A
  4. Quick Check:

    Class must be "collapse" for Bootstrap to work [OK]
Hint: Check class spelling: must be "collapse" not "collaps" [OK]
Common Mistakes:
  • Misspelling the collapse class
  • Confusing data-bs-toggle with data-toggle
  • Mismatching id and data-bs-target
5. You want to create an accordion with two sections using Bootstrap Collapse. Which code snippet correctly ensures only one section is open at a time?
<div class="accordion" id="accordionExample">
  <div class="accordion-item">
    <h2 class="accordion-header">
      <button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">Section 1</button>
    </h2>
    <div id="collapseOne" class="accordion-collapse collapse show" data-bs-parent="#accordionExample">
      <div class="accordion-body">Content 1</div>
    </div>
  </div>
  <div class="accordion-item">
    <h2 class="accordion-header">
      <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">Section 2</button>
    </h2>
    <div id="collapseTwo" class="accordion-collapse collapse" data-bs-parent="#accordionExample">
      <div class="accordion-body">Content 2</div>
    </div>
  </div>
</div>
hard
A. The divs lack the collapse class, so sections won't toggle
B. Missing data-bs-toggle attribute on buttons prevents collapse
C. Using aria-expanded="true" disables collapse functionality
D. This code correctly uses data-bs-parent to allow only one open section

Solution

  1. Step 1: Check for accordion structure and attributes

    The code uses data-bs-parent="#accordionExample" on collapse divs, which ensures only one section is open at a time.
  2. Step 2: Verify buttons and collapse classes

    Buttons have data-bs-toggle="collapse" and target correct divs. Collapse divs have the correct classes and IDs.
  3. Final Answer:

    This code correctly uses data-bs-parent to allow only one open section -> Option D
  4. Quick Check:

    data-bs-parent controls accordion behavior = C [OK]
Hint: Use data-bs-parent on collapse divs for accordion effect [OK]
Common Mistakes:
  • Omitting data-bs-parent causes multiple sections open
  • Forgetting collapse class on content divs
  • Misusing aria-expanded attribute
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