Bootstrap 5 Grid System – Responsive Layout Demo with Columns, Rows & Gutters
Introduction – Master the Bootstrap Grid System
The Bootstrap 5 grid system is a mobile-first, responsive layout engine based on CSS Flexbox. It allows you to design complex UI structures using rows and columns that adjust across screen sizes—without writing custom CSS.
In this guide, you’ll learn:
- How to build responsive layouts using
.container,.row, and.col-* - Create equal-width and fixed-width columns
- Use gutters and nesting to organize content cleanly
- Control layout on various screen sizes using breakpoints
Example 1 – Basic 3-Column Grid
<div class="container">
<div class="row">
<div class="col">Column 1</div>
<div class="col">Column 2</div>
<div class="col">Column 3</div>
</div>
</div>
| Class | Description |
|---|---|
.row | Creates a horizontal flex row |
.col | Auto-splits space into equal parts |
This layout divides the row equally among three columns. Ideal for simple layouts with balanced width.
Example 2 – Fixed-Width Grid Columns
<div class="row">
<div class="col-4">col-4</div>
<div class="col-8">col-8</div>
</div>
| Class | Description |
|---|---|
.col-4 | Occupies 4/12 columns (33.33%) |
.col-8 | Occupies 8/12 columns (66.66%) |
Use .col-* to create custom-width columns. Ensure the total adds up to 12 for one full-width row.
Example 3 – Responsive Grid with Breakpoints
<div class="row">
<div class="col-12 col-md-6">50% on md and up</div>
<div class="col-12 col-md-6">50% on md and up</div>
</div>
| Class | Function |
|---|---|
.col-12 | Full-width on small screens |
.col-md-6 | 50% width on medium screens and larger |
This grid stacks on mobile but shows side-by-side columns from medium (md) devices upward.
Example 4 – Add Spacing with Gutters
<div class="row g-4">
<div class="col-6">
<div class="p-3 bg-light">Column A</div>
</div>
<div class="col-6">
<div class="p-3 bg-light">Column B</div>
</div>
</div>
| Class | Description |
|---|---|
.g-4 | Adds spacing (gutter) between columns/rows |
The .g-* utility adds uniform horizontal and vertical spacing within the grid, removing the need for manual margins.
Example 5 – Nested Grid Layouts
<div class="row">
<div class="col-6">
<div class="row">
<div class="col-6">Nested A</div>
<div class="col-6">Nested B</div>
</div>
</div>
<div class="col-6">Main B</div>
</div>
| Feature | Description |
|---|---|
| Nested Grids | Use .row inside .col-* for sub-rows |
Nested grids allow inner layouts inside a column block. This is useful for forms, cards, or dashboards.
Bootstrap Grid Utility Reference
| Utility | Class Example | Purpose |
|---|---|---|
| Container | .container, .container-fluid | Wraps and centers layout or makes it full-width |
| Rows | .row | Groups columns horizontally |
| Columns | .col-*, .col-md-* | Controls column widths and responsiveness |
| Gutters | .g-*, .gx-*, .gy-* | Adds spacing between columns or rows |
| Nesting | .row inside .col-* | Enables grid layouts within a column |
Best Practices for Grid Layouts
| Tip | Reason |
|---|---|
Use .container | Centers content and sets max-width by breakpoint |
| Keep column totals to 12 | Ensures proper layout structure |
Use gutters (.g-*) | Avoids manual spacing with clean responsiveness |
| Combine breakpoints | Enables fluid layouts across devices |
| Nest sparingly | Prevents deeply nested grids that hurt readability |
Summary – Recap & Next Steps
Bootstrap’s responsive grid system makes it easy to build flexible, mobile-first page structures using utility-first classes.
Key Takeaways:
- Use
.container,.row, and.col-*for layout basics - Combine
.col-12,.col-md-*for responsive behaviors - Add clean spacing with
.g-*and use.col-autofor flexibility - Nest grids inside columns for modular UI sections
Great for dashboards, pricing tables, homepages, admin panels, and multi-column forms.
FAQs – Bootstrap 5 Grid Layout
Can I use more than 12 columns in a row?
Technically yes, but columns beyond 12 will wrap to a new line.
What’s the difference between .container and .container-fluid?
.container has max-widths by breakpoint, while .container-fluid always spans full width.
Can I remove spacing between grid items?
Yes. Use .g-0 to remove all gutters.
Can .col-auto be combined with .col-*?
Absolutely. Use .col-auto to let one column take as much space as its content needs, and the other .col-* to control structure.
Share Now :
