Containers are fundamental building blocks in Bootstrap 4, used to structure and align content within a webpage.
They provide a responsive layout by defining a fixed-width or fluid width based on the screen size.
This tutorial covers:
- Types of Bootstrap 4 containers
- Differences between .container and .container-fluid
- Breakpoints and responsive behavior
- Nesting containers
- Best practices with examples
1. Types of Containers in Bootstrap 4
Bootstrap 4 offers two types of containers:
- .container (Fixed-width container) – Adapts to different screen sizes with predefined maximum widths.
- .container-fluid (Full-width container) – Spans the entire width of the viewport, regardless of the screen size.
Each type has its own use cases, depending on whether you need a responsive but constrained width (.container) or a full-width layout (.container-fluid).
2. .container (Fixed-Width Container)
The .container class provides a responsive, fixed-width container that adjusts based on predefined breakpoints.
Example:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Bootstrap 4 Fixed Container</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
</head>
<body>
<div class="container bg-light p-3">
<h2>Fixed Container</h2>
<p>This container adjusts its width according to the screen size but does not span the full width.</p>
</div>
</body>
</html>
Fixed Widths at Different Breakpoints:
The .container class adapts to different screen sizes as follows:
| Breakpoint | Max Width |
|---|---|
| Extra Small (<576px) | 100% (fluid) |
| Small (≥576px) | 540px |
| Medium (≥768px) | 720px |
| Large (≥992px) | 960px |
| Extra Large (≥1200px) | 1140px |
Example Demonstration:
Resize the browser window to see how the .container class adjusts.
3. .container-fluid (Full-Width Container)
The .container-fluid class creates a container that spans the full width of the viewport.
Example:
<div class="container-fluid bg-primary text-white p-3">
<h2>Full-Width Container</h2>
<p>This container stretches across the entire width of the browser window, regardless of the screen size.</p>
</div>
Key Differences:
- .container maintains a fixed width with breakpoints.
- .container-fluid always spans the full width.
Use .container-fluid when you need content to occupy the entire screen, such as background images or large sections.
4. Responsive Containers (.container-sm, .container-md, .container-lg, .container-xl)
Bootstrap 4 introduced responsive containers that change their behavior based on the screen size.
Example:
<div class="container-md bg-warning p-3">
<h2>Responsive Container</h2>
<p>This container is full-width until the medium (`md`) breakpoint, after which it behaves like a fixed container.</p>
</div>
Responsive Container Behaviors:
| Class | Becomes Fixed At |
|---|---|
| .container-sm | ≥576px (Small) |
| .container-md | ≥768px (Medium) |
| .container-lg | ≥992px (Large) |
| .container-xl | ≥1200px (Extra Large) |
Use responsive containers when you need fluid behavior up to a certain screen size and a fixed width beyond that.
5. Nesting Containers
While nesting .container inside another .container is generally unnecessary, it is sometimes useful when creating structured layouts.
Example:
<div class="container bg-light p-4">
<h2>Main Container</h2>
<p>This is the outer container.</p>
<div class="container bg-secondary text-white p-3">
<h3>Nested Container</h3>
<p>This is a container inside another container.</p>
</div>
</div>
Best Practices for Nesting:
- Avoid nesting .container inside another .container unless required.
- Instead, use .row and .col for layout structuring.
6. Using Containers with Rows and Columns
Bootstrap 4 uses the grid system, where containers hold rows, and rows hold columns.
Example:
<div class="container">
<div class="row">
<div class="col-md-6 bg-info text-white p-3">
<p>Column 1</p>
</div>
<div class="col-md-6 bg-success text-white p-3">
<p>Column 2</p>
</div>
</div>
</div>
Key Points:
- Always place .row inside .container.
- Use .col-* classes inside .row to define column width.
7. Best Practices for Using Containers
1. Choose the Right Container Type
- Use .container for standard layouts with a max width.
- Use .container-fluid for full-width layouts.
- Use responsive containers like .container-md for mixed behaviors.
2. Avoid Nesting Containers Unnecessarily
- Instead of nesting containers, use .row and .col to structure layouts.
3. Combine Containers with Bootstrap Grid
- Containers should wrap .row, and .row should wrap .col elements.
4. Use Padding and Margins for Better Spacing
- Bootstrap provides spacing utilities like p-3, m-3 for proper spacing.
5. Test Responsive Behavior
- Resize the browser or use Chrome DevTools to ensure proper responsiveness.
Conclusion
Bootstrap 4 containers are essential for structuring web layouts. The .container class provides a responsive fixed-width design, while .container-fluid ensures full-width responsiveness.