Bird
Raised Fist0
Bootsrapmarkup~10 mins

Bootstrap 4 to 5 migration

Choose your learning style10 modes available
Introduction

Bootstrap 5 is the newer version of Bootstrap with improved features and better support. Migrating from Bootstrap 4 helps your website look modern and work well on all devices.

You want to update your website to use the latest Bootstrap features.
You need better mobile responsiveness and accessibility.
You want to remove jQuery dependency for faster loading.
You want to use new utility classes and improved grid system.
You want to fix compatibility issues with modern browsers.
Syntax
Bootsrap
No special code syntax, but you update your HTML and CSS classes to match Bootstrap 5 changes.

Bootstrap 5 removes jQuery, so JavaScript plugins use vanilla JS.

Some class names and components have changed or been removed.

Examples
Bootstrap 4 uses form-group to wrap form controls.
Bootsrap
<!-- Bootstrap 4 -->
<div class="form-group">
  <label for="inputEmail">Email address</label>
  <input type="email" class="form-control" id="inputEmail" placeholder="Enter email">
</div>
Bootstrap 5 replaces form-group with spacing utilities like mb-3 and adds form-label for labels.
Bootsrap
<!-- Bootstrap 5 -->
<div class="mb-3">
  <label for="inputEmail" class="form-label">Email address</label>
  <input type="email" class="form-control" id="inputEmail" placeholder="Enter email">
</div>
Bootstrap 4 uses data-toggle and data-target attributes for JavaScript components.
Bootsrap
<!-- Bootstrap 4 -->
<button class="btn btn-primary" data-toggle="modal" data-target="#myModal">Open Modal</button>
Bootstrap 5 changes these attributes to include bs prefix like data-bs-toggle.
Bootsrap
<!-- Bootstrap 5 -->
<button class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#myModal">Open Modal</button>
Sample Program

This example shows a simple form using Bootstrap 5 classes. Notice the use of mb-3 for spacing and form-label for labels. The Bootstrap 5 CSS and JS are loaded from CDN.

Bootsrap
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Bootstrap 5 Migration 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 mt-5">
    <h1 class="mb-4">Bootstrap 5 Form Example</h1>
    <form>
      <div class="mb-3">
        <label for="emailInput" class="form-label">Email address</label>
        <input type="email" class="form-control" id="emailInput" placeholder="Enter email">
      </div>
      <div class="mb-3">
        <label for="passwordInput" class="form-label">Password</label>
        <input type="password" class="form-control" id="passwordInput" placeholder="Password">
      </div>
      <button type="submit" class="btn btn-primary">Submit</button>
    </form>
  </main>
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>
OutputSuccess
Important Notes

Remember to update all data-toggle and similar attributes to include the bs prefix in Bootstrap 5.

Check for removed components like jumbotron and replace them with utilities or new components.

Test your site on different screen sizes to ensure responsive design still works after migration.

Summary

Bootstrap 5 improves performance and modernizes the framework by removing jQuery and updating classes.

Migration requires updating class names, data attributes, and some HTML structure.

Using Bootstrap 5 helps your site look fresh and work better on all devices.

Practice

(1/5)
1. Which of the following is a key change when migrating from Bootstrap 4 to Bootstrap 5?
easy
A. Reverting to older grid system from Bootstrap 3
B. Introduction of inline styles for layout
C. Removal of jQuery dependency
D. Use of <center> tag for centering content

Solution

  1. Step 1: Understand Bootstrap 5 updates

    Bootstrap 5 removes the jQuery dependency to improve performance and modernize the framework.
  2. Step 2: Identify incorrect options

    Options A, B, and C are incorrect because Bootstrap 5 uses CSS for layout (no inline styles), avoids deprecated tags like <center>, and updates the grid system rather than reverting.
  3. Final Answer:

    Removal of jQuery dependency -> Option C
  4. Quick Check:

    Bootstrap 5 no jQuery = D [OK]
Hint: Remember: Bootstrap 5 dropped jQuery for better speed [OK]
Common Mistakes:
  • Thinking Bootstrap 5 uses deprecated HTML tags
  • Assuming jQuery is still required
  • Confusing grid system changes with older versions
2. Which is the correct way to update a Bootstrap 4 button class btn btn-primary to Bootstrap 5?
easy
A. btn-primary btn
B. btn btn-primary-5
C. button-primary
D. btn btn-primary remains the same in Bootstrap 5

Solution

  1. Step 1: Check Bootstrap 5 button class changes

    Bootstrap 5 keeps button classes like btn btn-primary unchanged for backward compatibility.
  2. Step 2: Verify other options

    Options B, C, and D are invalid class names and will not style the button correctly.
  3. Final Answer:

    btn btn-primary remains the same in Bootstrap 5 -> Option D
  4. Quick Check:

    Button classes stable = A [OK]
Hint: Button classes mostly unchanged from v4 to v5 [OK]
Common Mistakes:
  • Adding extra numbers to class names
  • Changing class order incorrectly
  • Using non-existent class names
3. What will be the visual result of this Bootstrap 5 code snippet?
<div class="d-flex justify-content-center">
  <button class="btn btn-success">Click Me</button>
</div>
medium
A. A green button centered horizontally inside a flexible container
B. A green button aligned to the left inside a block container
C. A red button centered vertically
D. A button with no styling or alignment

Solution

  1. Step 1: Analyze container classes

    The d-flex class makes the container a flexbox, and justify-content-center centers content horizontally.
  2. Step 2: Analyze button classes

    The btn btn-success classes style the button green with Bootstrap's success theme.
  3. Final Answer:

    A green button centered horizontally inside a flexible container -> Option A
  4. Quick Check:

    Flex center + btn-success = C [OK]
Hint: d-flex + justify-content-center centers horizontally [OK]
Common Mistakes:
  • Confusing justify-content-center with vertical centering
  • Mixing button color classes
  • Ignoring flex container effects
4. You have this Bootstrap 4 modal trigger button:
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#myModal">Open</button>

What is the correct way to update it for Bootstrap 5?
medium
A. data-bs-toggle="modal" data-bs-target="#myModal"
B. data-toggle="modal" data-target="#myModal" (no change needed)
C. data-modal-toggle="myModal"
D. data-toggle-modal="#myModal"

Solution

  1. Step 1: Identify Bootstrap 5 data attribute changes

    Bootstrap 5 prefixes data attributes with data-bs- to avoid conflicts, so data-toggle becomes data-bs-toggle.
  2. Step 2: Verify correct attribute names

    data-bs-toggle="modal" data-bs-target="#myModal" uses correct new attributes. Options A, C, and D use old or invalid attributes.
  3. Final Answer:

    data-bs-toggle="modal" data-bs-target="#myModal" -> Option A
  4. Quick Check:

    Bootstrap 5 data attributes start with data-bs- [OK]
Hint: Add 'bs' prefix to data attributes in Bootstrap 5 [OK]
Common Mistakes:
  • Leaving old data attributes unchanged
  • Using incorrect attribute names
  • Removing necessary attributes
5. You want to migrate a Bootstrap 4 grid layout using col-md-6 and offset-md-3 to Bootstrap 5. Which is the correct updated class for offset in Bootstrap 5?
medium
A. ms-md-3
B. offset-md-3 remains the same
C. offset-md-start-3
D. offset-md-3 replaced by offset-md-3-start

Solution

  1. Step 1: Check offset class changes in Bootstrap 5

    Bootstrap 5 keeps offset classes like offset-md-3 unchanged for grid layout offsets.
  2. Step 2: Analyze other options

    Options B, C, and D are invalid or do not exist in Bootstrap 5's grid system.
  3. Final Answer:

    offset-md-3 remains the same -> Option B
  4. Quick Check:

    Offset classes stable in Bootstrap 5 = A [OK]
Hint: Offset classes keep same names in Bootstrap 5 [OK]
Common Mistakes:
  • Changing offset class names unnecessarily
  • Confusing margin utilities with offset classes
  • Using invalid class syntax
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