Bird
Raised Fist0
Bootsrapmarkup~10 mins

Scrollable and centered modals in Bootsrap - Browser Rendering Trace

Choose your learning style10 modes available
Render Flow - Scrollable and centered modals
Load HTML with modal markup
↓
Bootstrap JS initializes modal
↓
Modal overlay and dialog elements created
↓
Apply 'modal-dialog-centered' class
↓
Apply 'modal-dialog-scrollable' class
↓
Calculate viewport height and modal content height
↓
Enable vertical centering and scrolling
↓
Render modal on top of page content
The browser reads the modal HTML, Bootstrap JavaScript sets up the modal overlay and dialog. The 'modal-dialog-centered' class centers the modal vertically in the viewport. The 'modal-dialog-scrollable' class makes the modal body scrollable if content is tall, keeping header and footer fixed.
Render Steps - 3 Steps
Code Added:<div class="modal-dialog">
Before
[Page content]

(No modal visible)
→
After
[Page content]

[Modal overlay covers page]
[Modal dialog box appears at top center]
[Modal content stacked vertically]
Adding the modal-dialog container creates the modal box with default top alignment and overlay behind it.
🔧 Browser Action:Creates new stacking context and modal overlay; triggers reflow to position modal
Code Sample
A Bootstrap modal that is vertically centered and has a scrollable body if content is tall.
Bootsrap
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#exampleModal">
  Launch demo modal
</button>

<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
  <div class="modal-dialog modal-dialog-centered modal-dialog-scrollable">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
      </div>
      <div class="modal-body">
        <!-- Long content here -->
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary">Save changes</button>
      </div>
    </div>
  </div>
</div>
Render Quiz - 3 Questions
Test your understanding
After applying 'modal-dialog-centered' (step 2), where is the modal dialog positioned?
AVertically centered in the viewport
BAligned to the top of the viewport
CAligned to the bottom of the viewport
DCentered horizontally but at the bottom vertically
Common Confusions - 3 Topics
Why doesn't my modal center vertically even with 'modal-dialog-centered'?
Make sure 'modal-dialog-centered' is added to the same element with 'modal-dialog'. If added elsewhere, vertical centering won't work (see render_step 2).
💡 Add 'modal-dialog-centered' to the modal-dialog container to center vertically.
Why does my modal body not scroll even with 'modal-dialog-scrollable'?
The modal body only scrolls if content height exceeds viewport height. If content is short, no scroll appears (see render_step 3).
💡 Add enough content inside modal-body to see scrolling effect.
Why does the modal footer move when scrolling the body?
Without 'modal-dialog-scrollable', the entire modal scrolls including footer. With it, footer stays fixed while body scrolls (render_step 3).
💡 Use 'modal-dialog-scrollable' to keep footer fixed and body scrollable.
Property Reference
ClassEffectVisual BehaviorCommon Use
modal-dialogCreates modal containerModal box appears with overlay, top aligned by defaultBasic modal structure
modal-dialog-centeredCenters modal verticallyModal box moves to vertical center of viewportBetter visual focus on modal
modal-dialog-scrollableMakes modal body scrollableModal header/footer fixed; body scrolls if tallFor long modal content
Concept Snapshot
Bootstrap modals use 'modal-dialog' as container. Add 'modal-dialog-centered' to center vertically. Add 'modal-dialog-scrollable' to make body scrollable. Header and footer stay fixed with scrollable body. Modal overlays page content and disables background interaction.

Practice

(1/5)
1. What does the Bootstrap class modal-dialog-scrollable do in a modal?
easy
A. Disables modal animations
B. Makes the modal content scrollable inside the popup
C. Changes the modal background color
D. Centers the modal vertically on the screen

Solution

  1. Step 1: Understand the class purpose

    The class modal-dialog-scrollable is designed to allow the modal content area to scroll if the content is too long.
  2. Step 2: Compare with other classes

    Unlike modal-dialog-centered which centers the modal, this class specifically controls scrolling inside the modal.
  3. Final Answer:

    Makes the modal content scrollable inside the popup -> Option B
  4. Quick Check:

    modal-dialog-scrollable = scrollable content [OK]
Hint: Scrollable modals use modal-dialog-scrollable class [OK]
Common Mistakes:
  • Confusing scrollable with centered behavior
  • Thinking it changes modal size
  • Assuming it affects modal background
2. Which is the correct way to add both scrollable and vertically centered behavior to a Bootstrap modal dialog?
easy
A. <div class='modal-dialog modal-dialog-scrollable modal-dialog-centered'>
B. <div class='modal-dialog scrollable-centered'>
C. <div class='modal-dialog scrollable centered'>
D. <div class='modal-dialog scrollable centered-modal'>

Solution

  1. Step 1: Identify correct Bootstrap classes

    Bootstrap uses modal-dialog-scrollable and modal-dialog-centered as separate classes to add scroll and vertical centering.
  2. Step 2: Check syntax for multiple classes

    Multiple classes are added separated by spaces inside the class attribute, so both classes must be included exactly as documented.
  3. Final Answer:

    <div class='modal-dialog modal-dialog-scrollable modal-dialog-centered'> -> Option A
  4. Quick Check:

    Use both classes separated by space [OK]
Hint: Use both classes separated by spaces inside class attribute [OK]
Common Mistakes:
  • Using incorrect class names like 'scrollable' or 'centered'
  • Combining classes into one word
  • Missing one of the required classes
3. Given this modal HTML snippet, what will be the visual effect?
<div class='modal-dialog modal-dialog-scrollable modal-dialog-centered'>
  <div class='modal-content'>
    <div class='modal-body'>
      <p>Very long content here...</p>
    </div>
  </div>
</div>
medium
A. Modal is centered but content does not scroll
B. Modal content scrolls but modal is aligned to top
C. Modal content scrolls inside and modal is vertically centered on screen
D. Modal neither scrolls nor centers vertically

Solution

  1. Step 1: Analyze classes used

    The modal uses both modal-dialog-scrollable and modal-dialog-centered classes.
  2. Step 2: Understand combined effect

    These classes together make the modal vertically centered and allow the modal body content to scroll if it is long.
  3. Final Answer:

    Modal content scrolls inside and modal is vertically centered on screen -> Option C
  4. Quick Check:

    Both scrollable and centered classes active = scroll + center [OK]
Hint: Both classes together scroll content and center modal [OK]
Common Mistakes:
  • Assuming scroll disables centering
  • Thinking content scrolls outside modal
  • Confusing modal-body scrolling with page scrolling
4. You added modal-dialog-scrollable but the modal content is not scrolling. What is the likely mistake?
medium
A. You forgot to add modal-dialog-centered
B. You must add scrollable class instead
C. You need to add overflow-auto to modal-content
D. You placed modal-dialog-scrollable on the wrong element

Solution

  1. Step 1: Check where the class is applied

    The modal-dialog-scrollable class must be on the modal-dialog element, not on modal-content or others.
  2. Step 2: Understand Bootstrap structure

    If placed incorrectly, the scroll behavior won't activate because Bootstrap styles target the dialog container.
  3. Final Answer:

    You placed modal-dialog-scrollable on the wrong element -> Option D
  4. Quick Check:

    modal-dialog-scrollable must be on modal-dialog [OK]
Hint: Apply scrollable class only on modal-dialog div [OK]
Common Mistakes:
  • Adding scrollable to modal-content instead
  • Confusing scrollable with centered class
  • Forgetting to add modal-dialog class
5. You want a modal that is vertically centered, scrollable, and also has a fixed header and footer that stay visible while the body scrolls. Which Bootstrap structure and classes should you use?
hard
A. Use modal-dialog modal-dialog-scrollable modal-dialog-centered with modal-header, modal-body, and modal-footer inside modal-content
B. Use modal-dialog modal-dialog-centered only and add custom CSS for scrolling
C. Use modal-dialog-scrollable on modal-content and add fixed position to header/footer
D. Use modal-dialog modal-dialog-scrollable but omit modal-header and modal-footer

Solution

  1. Step 1: Identify required classes for scroll and center

    Use both modal-dialog-scrollable and modal-dialog-centered on the modal-dialog element.
  2. Step 2: Structure modal content properly

    Inside modal-content, include modal-header and modal-footer which remain fixed, while modal-body scrolls.
  3. Step 3: Confirm Bootstrap default behavior

    Bootstrap automatically keeps header and footer visible when using scrollable modals with this structure.
  4. Final Answer:

    Use modal-dialog modal-dialog-scrollable modal-dialog-centered with modal-header, modal-body, and modal-footer inside modal-content -> Option A
  5. Quick Check:

    Combine scrollable + centered + header/footer structure [OK]
Hint: Use both classes on modal-dialog and include header/footer inside modal-content [OK]
Common Mistakes:
  • Adding scrollable to modal-content instead of modal-dialog
  • Omitting modal-header or modal-footer
  • Trying to fix header/footer with custom CSS unnecessarily
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