2020-04-02 20:44:07 +02:00
---
layout: docs
title: Containers
2020-06-27 22:39:17 +02:00
description: Containers are a fundamental building block of Bootstrap that contain, pad, and align your content within a given device or viewport.
2020-04-02 20:44:07 +02:00
group: layout
toc: true
---
## How they work
Containers are the most basic layout element in Bootstrap and are **required when using our default grid system** . Containers are used to contain, pad, and (sometimes) center the content within them. While containers *can* be nested, most layouts do not require a nested container.
Bootstrap comes with three different containers:
- `.container` , which sets a `max-width` at each responsive breakpoint
- `.container-fluid` , which is `width: 100%` at all breakpoints
- `.container-{breakpoint}` , which is `width: 100%` until the specified breakpoint
The table below illustrates how each container's `max-width` compares to the original `.container` and `.container-fluid` across each breakpoint.
See them in action and compare them in our [Grid example ]({{< docsref "/examples/grid#containers" >}} ).
2020-04-08 11:03:43 +02:00
< table class = "table" >
2020-04-02 20:44:07 +02:00
< thead >
< tr >
2020-04-08 11:03:43 +02:00
< td class = "border-dark" > < / td >
< th scope = "col" >
2020-04-02 20:44:07 +02:00
Extra small< br >
2020-10-31 18:27:30 +01:00
< span class = "fw-normal" > < 576px< / span >
2020-04-02 20:44:07 +02:00
< / th >
2020-04-08 11:03:43 +02:00
< th scope = "col" >
2020-04-02 20:44:07 +02:00
Small< br >
2020-10-31 18:27:30 +01:00
< span class = "fw-normal" > ≥ 576px< / span >
2020-04-02 20:44:07 +02:00
< / th >
2020-04-08 11:03:43 +02:00
< th scope = "col" >
2020-04-02 20:44:07 +02:00
Medium< br >
2020-10-31 18:27:30 +01:00
< span class = "fw-normal" > ≥ 768px< / span >
2020-04-02 20:44:07 +02:00
< / th >
2020-04-08 11:03:43 +02:00
< th scope = "col" >
2020-04-02 20:44:07 +02:00
Large< br >
2020-10-31 18:27:30 +01:00
< span class = "fw-normal" > ≥ 992px< / span >
2020-04-02 20:44:07 +02:00
< / th >
2020-04-08 11:03:43 +02:00
< th scope = "col" >
2020-04-02 20:44:07 +02:00
X-Large< br >
2020-10-31 18:27:30 +01:00
< span class = "fw-normal" > ≥ 1200px< / span >
2020-04-02 20:44:07 +02:00
< / th >
2020-04-08 11:03:43 +02:00
< th scope = "col" >
2020-04-02 20:44:07 +02:00
XX-Large< br >
2020-10-31 18:27:30 +01:00
< span class = "fw-normal" > ≥ 1400px< / span >
2020-04-02 20:44:07 +02:00
< / th >
< / tr >
< / thead >
< tbody >
< tr >
2020-10-31 18:27:30 +01:00
< th scope = "row" class = "fw-normal" > < code > .container< / code > < / th >
2020-04-02 20:44:07 +02:00
< td class = "text-muted" > 100%< / td >
< td > 540px< / td >
< td > 720px< / td >
< td > 960px< / td >
< td > 1140px< / td >
< td > 1320px< / td >
< / tr >
< tr >
2020-10-31 18:27:30 +01:00
< th scope = "row" class = "fw-normal" > < code > .container-sm< / code > < / th >
2020-04-02 20:44:07 +02:00
< td class = "text-muted" > 100%< / td >
< td > 540px< / td >
< td > 720px< / td >
< td > 960px< / td >
< td > 1140px< / td >
< td > 1320px< / td >
< / tr >
< tr >
2020-10-31 18:27:30 +01:00
< th scope = "row" class = "fw-normal" > < code > .container-md< / code > < / th >
2020-04-02 20:44:07 +02:00
< td class = "text-muted" > 100%< / td >
< td class = "text-muted" > 100%< / td >
< td > 720px< / td >
< td > 960px< / td >
< td > 1140px< / td >
< td > 1320px< / td >
< / tr >
< tr >
2020-10-31 18:27:30 +01:00
< th scope = "row" class = "fw-normal" > < code > .container-lg< / code > < / th >
2020-04-02 20:44:07 +02:00
< td class = "text-muted" > 100%< / td >
< td class = "text-muted" > 100%< / td >
< td class = "text-muted" > 100%< / td >
< td > 960px< / td >
< td > 1140px< / td >
< td > 1320px< / td >
< / tr >
< tr >
2020-10-31 18:27:30 +01:00
< th scope = "row" class = "fw-normal" > < code > .container-xl< / code > < / th >
2020-04-02 20:44:07 +02:00
< td class = "text-muted" > 100%< / td >
< td class = "text-muted" > 100%< / td >
< td class = "text-muted" > 100%< / td >
< td class = "text-muted" > 100%< / td >
< td > 1140px< / td >
< td > 1320px< / td >
< / tr >
< tr >
2020-10-31 18:27:30 +01:00
< th scope = "row" class = "fw-normal" > < code > .container-xxl< / code > < / th >
2020-04-02 20:44:07 +02:00
< td class = "text-muted" > 100%< / td >
< td class = "text-muted" > 100%< / td >
< td class = "text-muted" > 100%< / td >
< td class = "text-muted" > 100%< / td >
< td class = "text-muted" > 100%< / td >
< td > 1320px< / td >
< / tr >
< tr >
2020-10-31 18:27:30 +01:00
< th scope = "row" class = "fw-normal" > < code > .container-fluid< / code > < / th >
2020-04-02 20:44:07 +02:00
< td class = "text-muted" > 100%< / td >
< td class = "text-muted" > 100%< / td >
< td class = "text-muted" > 100%< / td >
< td class = "text-muted" > 100%< / td >
< td class = "text-muted" > 100%< / td >
< td class = "text-muted" > 100%< / td >
< / tr >
< / tbody >
< / table >
## Default container
Our default `.container` class is a responsive, fixed-width container, meaning its `max-width` changes at each breakpoint.
2020-10-19 11:56:49 +02:00
```html
2020-04-02 20:44:07 +02:00
< div class = "container" >
<!-- Content here -->
< / div >
2020-10-19 11:56:49 +02:00
```
2020-04-02 20:44:07 +02:00
## Responsive containers
Responsive containers allow you to specify a class that is 100% wide until the specified breakpoint is reached, after which we apply `max-width` s for each of the higher breakpoints. For example, `.container-sm` is 100% wide to start until the `sm` breakpoint is reached, where it will scale up with `md` , `lg` , `xl` , and `xxl` .
2020-10-19 11:56:49 +02:00
```html
2020-04-02 20:44:07 +02:00
< div class = "container-sm" > 100% wide until small breakpoint< / div >
< div class = "container-md" > 100% wide until medium breakpoint< / div >
< div class = "container-lg" > 100% wide until large breakpoint< / div >
< div class = "container-xl" > 100% wide until extra large breakpoint< / div >
< div class = "container-xxl" > 100% wide until extra extra large breakpoint< / div >
2020-10-19 11:56:49 +02:00
```
2020-04-02 20:44:07 +02:00
## Fluid containers
Use `.container-fluid` for a full width container, spanning the entire width of the viewport.
2020-10-19 11:56:49 +02:00
```html
2020-04-02 20:44:07 +02:00
< div class = "container-fluid" >
...
< / div >
2020-10-19 11:56:49 +02:00
```
2020-04-02 20:44:07 +02:00
## Sass
As shown above, Bootstrap generates a series of predefined container classes to help you build the layouts you desire. You may customize these predefined container classes by modifying the Sass map (found in `_variables.scss` ) that powers them:
2020-04-13 23:40:47 +02:00
{{< scss-docs name = "container-max-widths" file = "scss/_variables.scss" > }}
2020-04-02 20:44:07 +02:00
In addition to customizing the Sass, you can also create your own containers with our Sass mixin.
2020-10-19 11:56:49 +02:00
```scss
2020-04-02 20:44:07 +02:00
// Source mixin
@mixin make-container($padding-x: $container-padding-x) {
width: 100%;
padding-right: $padding-x;
padding-left: $padding-x;
margin-right: auto;
margin-left: auto;
}
// Usage
.custom-container {
@include make-container();
}
2020-10-19 11:56:49 +02:00
```
2020-04-02 20:44:07 +02:00
For more information and examples on how to modify our Sass maps and variables, please refer to [the Sass section of the Grid documentation ]({{< docsref "/layout/grid#sass" >}} ).