Bird
Raised Fist0
Bootsrapmarkup~8 mins

Dismissible alerts in Bootsrap - Performance & Optimization

Choose your learning style10 modes available
Performance: Dismissible alerts
MEDIUM IMPACT
This affects page interaction responsiveness and visual stability when users close alert messages.
Creating alerts that users can close without causing layout shifts or slow interactions
Bootsrap
<div class="alert alert-warning alert-dismissible fade show" role="alert">Warning!<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button></div>
Bootstrap's built-in dismissible alert uses CSS transitions and removes the element cleanly, reducing layout shifts.
📈 Performance GainSingle reflow with smooth fade-out, minimal CLS, and better interaction responsiveness.
Creating alerts that users can close without causing layout shifts or slow interactions
Bootsrap
<div class="alert alert-warning" role="alert">Warning!<button onclick="this.parentElement.style.display='none'">Close</button></div>
Directly hiding the alert with inline style triggers layout recalculation and can cause cumulative layout shift (CLS).
📉 Performance CostTriggers 1 reflow and 1 repaint per dismissal, causing noticeable layout shift.
Performance Comparison
PatternDOM OperationsReflowsPaint CostVerdict
Inline style hide on click1 element style change1 reflow per dismissal1 repaint[X] Bad
Bootstrap dismissible alert with fadeElement removed after fade1 reflow with transition1 repaint with transition[OK] Good
Rendering Pipeline
Dismissible alerts affect the Layout and Paint stages when the alert is removed or hidden. Using CSS transitions delays layout recalculation and reduces abrupt changes.
→Layout
→Paint
→Composite
⚠️ BottleneckLayout recalculation due to element removal or hiding
Core Web Vital Affected
INP, CLS
This affects page interaction responsiveness and visual stability when users close alert messages.
Optimization Tips
1Use CSS transitions for alert dismissal to reduce layout shifts.
2Avoid inline style changes that hide alerts abruptly.
3Leverage Bootstrap's built-in dismissible alert features for better performance and accessibility.
Performance Quiz - 3 Questions
Test your performance knowledge
What is the main performance benefit of using Bootstrap's dismissible alerts over manually hiding alerts with inline styles?
AThey block rendering until the alert is removed.
BThey use CSS transitions to reduce layout shifts and repaint costs.
CThey add more DOM elements for better control.
DThey increase bundle size significantly.
DevTools: Performance
How to check: Record a performance profile while dismissing alerts. Look for layout and paint events triggered by alert removal.
What to look for: Check for minimal layout shifts and smooth fade animations indicating good performance.

Practice

(1/5)
1. What is the main purpose of a dismissible alert in Bootstrap?
easy
A. To make alerts appear with animation only
B. To allow users to close alert messages and keep the page clean
C. To change the alert color automatically
D. To disable all alerts on the page

Solution

  1. Step 1: Understand the role of dismissible alerts

    Dismissible alerts let users close alert messages so the page looks tidy and less cluttered.
  2. Step 2: Compare options with this purpose

    Only To allow users to close alert messages and keep the page clean describes this purpose correctly; others describe unrelated features.
  3. Final Answer:

    To allow users to close alert messages and keep the page clean -> Option B
  4. Quick Check:

    Dismissible alerts = user can close alerts [OK]
Hint: Dismissible means user can close it [OK]
Common Mistakes:
  • Thinking dismissible changes alert color
  • Confusing dismissible with animation only
  • Believing dismissible disables alerts
2. Which of the following is the correct Bootstrap class to make an alert dismissible?
easy
A. alert alert-dismissible
B. alert dismissible-alert
C. alert dismiss-alert
D. alert closeable

Solution

  1. Step 1: Recall Bootstrap's dismissible alert class

    The official class to make an alert dismissible is alert-dismissible combined with alert.
  2. Step 2: Check each option

    Only alert alert-dismissible uses the correct class names exactly as Bootstrap requires.
  3. Final Answer:

    alert alert-dismissible -> Option A
  4. Quick Check:

    Dismissible alert class = alert-dismissible [OK]
Hint: Look for exact class name alert-dismissible [OK]
Common Mistakes:
  • Using incorrect class names like dismissible-alert
  • Missing the alert class
  • Using non-Bootstrap class names
3. What will happen when the close button inside this alert is clicked?
<div class="alert alert-warning alert-dismissible fade show" role="alert">
  Warning! Check your input.
  <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
medium
A. The alert will reload the page
B. Nothing will happen because the button is missing JavaScript
C. The alert text will change to 'Closed!'
D. The alert will fade out and disappear from the page

Solution

  1. Step 1: Understand the alert structure and classes

    The alert uses alert-dismissible, fade, and show classes with a close button having data-bs-dismiss="alert".
  2. Step 2: Know Bootstrap's behavior on close button click

    Clicking the button triggers Bootstrap's JavaScript to fade out and remove the alert from the page.
  3. Final Answer:

    The alert will fade out and disappear from the page -> Option D
  4. Quick Check:

    Close button with data-bs-dismiss = alert hides alert [OK]
Hint: Close button with data-bs-dismiss hides alert [OK]
Common Mistakes:
  • Thinking alert text changes on close
  • Assuming no effect without extra JS code
  • Believing page reloads on close
4. Identify the error in this dismissible alert code:
<div class="alert alert-success alert-dismissible" role="alert">
  Success! Your form was submitted.
  <button type="button" class="btn-close" aria-label="Close"></button>
</div>
medium
A. The alert should not have alert-dismissible class
B. Alert is missing the fade class
C. Missing data-bs-dismiss="alert" on the close button
D. The button type should be submit

Solution

  1. Step 1: Check the close button attributes

    The close button must have data-bs-dismiss="alert" to trigger alert dismissal.
  2. Step 2: Verify other classes and attributes

    The alert-dismissible class is correct, fade is optional, and button type should be button, not submit.
  3. Final Answer:

    Missing data-bs-dismiss="alert" on the close button -> Option C
  4. Quick Check:

    Close button needs data-bs-dismiss attribute [OK]
Hint: Close button must have data-bs-dismiss="alert" [OK]
Common Mistakes:
  • Forgetting data-bs-dismiss attribute
  • Thinking fade class is mandatory
  • Using wrong button type
5. You want to create a dismissible alert that automatically disappears after 5 seconds but also allows manual close. Which approach is correct?
hard
A. Use a dismissible alert with btn-close and add JavaScript to remove it after 5 seconds
B. Add data-bs-auto-dismiss="5000" attribute to the alert div
C. Use only fade and show classes without close button
D. Set the alert class to alert-auto-close and no JavaScript needed

Solution

  1. Step 1: Understand Bootstrap's dismissible alert features

    Bootstrap does not provide automatic dismiss with a data attribute; manual close requires btn-close and data-bs-dismiss="alert".
  2. Step 2: Implement auto-dismiss with JavaScript

    To auto-remove after 5 seconds, add JavaScript code that removes the alert element after a timeout, while keeping manual close button.
  3. Final Answer:

    Use a dismissible alert with btn-close and add JavaScript to remove it after 5 seconds -> Option A
  4. Quick Check:

    Auto-dismiss needs JS plus dismissible alert [OK]
Hint: Auto-dismiss requires JS plus dismissible alert [OK]
Common Mistakes:
  • Assuming data-bs-auto-dismiss exists
  • Omitting the close button for manual close
  • Using non-existent alert-auto-close class
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