You get latest content at a time when data will updated
Automaticaly take backup as par schedule
Allow to show public user message
Use our powerful mobile-first flexbox grid to build layouts of all shapes and sizes thanks to a twelve column system, five default responsive tiers, Sass variables and mixins, and dozens of predefined classes.
Bootstrap’s grid system uses a series of containers, rows, and columns to layout and align content. It’s built with flexbox and is fully responsive. Below is an example and an in-depth look at how the grid comes together.
New to or unfamiliar with flexbox? Read this CSS Tricks flexbox guide for background, terminology, guidelines, and code snippets.
The above example creates three equal-width columns on small, medium, large,
and extra large devices using our predefined grid classes. Those columns are
centered in the page with the parent .container
.
Breaking it down, here’s how it works:
.container
for a
responsive pixel width or .container-fluid
for
width: 100%
across all viewport
and device sizes.
padding
(called a gutter) for
controlling the space between them. This padding
is then counteracted on the rows with negative margins. This way, all
the content in your columns is visually aligned down the left side.width
will automatically layout as
equal width columns. For example, four instances of .col-sm
will each automatically be 25% wide from the small breakpoint and up.
See the auto-layout columns section
for more examples..col-4
.width
s are set in
percentages, so they’re always fluid and sized relative to their parent
element.padding
to create the gutters between individual columns, however, you can
remove the margin
from rows and padding
from
columns with .no-gutters
on the
.row
.
.col-sm-4
applies to small, medium, large, and extra large devices, but not the
first xs
breakpoint).
.col-4
) or Sass mixins for more semantic markup.Be aware of the limitations and bugs around flexbox, like the inability to use some HTML elements as flex containers.
While Bootstrap uses em
s or rem
s for defining most sizes, px
s are used for grid
breakpoints and container widths. This is because the viewport width is in
pixels and does not change with the font size.
See how aspects of the Bootstrap grid system work across multiple devices with a handy table.
Extra small
<576px |
Small
≥576px |
Medium
≥768px |
Large
≥992px |
Extra large
≥1200px |
Extra Extra large
≥1400px |
|
---|---|---|---|---|---|---|
Max container width | None (auto) | 540px | 720px | 960px | 1140px | 1320px |
Class prefix | .col- |
.col-sm- |
.col-md- |
.col-lg- |
.col-xl- |
.col-xxl- |
# of columns | 12 | |||||
Gutter width | 24px (12px on each side of a column) | |||||
Nestable | Yes | |||||
Column ordering | Yes |
Utilize breakpoint-specific column classes for easy column sizing without an
explicit numbered class like .col-sm-6
.
For example, here are two grid layouts that apply to every device and
viewport, from xs
to xl
. Add any number of unit-less
classes for each breakpoint you need and every column will be the same
width.
Equal-width columns can be broken into multiple lines, but there was a Safari
flexbox bug that prevented this from working without an
explicit
flex-basis
or border
. There are workarounds for older
browser versions, but they shouldn’t be necessary if you’re
up-to-date.
Auto-layout for flexbox grid columns also means you can set the width of one column and have the sibling columns automatically resize around it. You may use predefined grid classes (as shown below), grid mixins, or inline widths. Note that the other columns will resize no matter the width of the center column.
Use col-{breakpoint}-auto
classes to
size columns based on the natural width of their content.
Create equal-width columns that span multiple rows by inserting a .w-100
where you want the columns to
break to a new line. Make the breaks responsive by mixing
the
.w-100
with some responsive display utilities.
Bootstrap’s grid includes five tiers of predefined classes for building complex responsive layouts. Customize the size of your columns on extra small, small, medium, large, or extra large devices however you see fit.
For grids that are the same from the smallest of devices to the largest, use
the .col
and .col-*
classes. Specify a numbered
class when you need a particularly sized column; otherwise, feel free to
stick to .col
.
Using a single set of .col-sm-*
classes, you can create a basic grid system that starts out stacked and
becomes horizontal at the small breakpoint (sm
).
Don’t want your columns to simply stack in some grid tiers? Use a combination of different classes for each tier as needed. See the example below for a better idea of how it all works.
Use flexbox alignment utilities to vertically and horizontally align columns.
The gutters between columns in our predefined grid classes can be removed
with .no-gutters
. This removes the
negative margin
s
from
.row
and the horizontal padding
from all immediate children
columns.
Here’s the source code for creating these styles. Note that column overrides are scoped to only the first children columns and are targeted via attribute selector. While this generates a more specific selector, column padding can still be further customized with spacing utilities.
Need an edge-to-edge design? Drop the parent .container
or .container-fluid
.
In practice, here’s how it looks. Note you can continue to use this with all other predefined grid classes (including column widths, responsive tiers, reorders, and more).
If more than 12 columns are placed within a single row, each group of extra columns will, as one unit, wrap onto a new line.
Breaking columns to a new line in flexbox requires a small hack: add an
element with width: 100%
wherever you
want to wrap your columns to a new line. Normally
this is accomplished with multiple
.row
s, but not every implementation
method can account for this.
You may also apply this break at specific breakpoints with our responsive display utilities.
Use .order-
classes for controlling
the visual order of your content. These classes are
responsive, so you can set the order
by breakpoint (e.g., .order-1.order-md-2
). Includes support
for 1
through 12
across
all five grid tiers.
There are also responsive .order-first
and .order-last
classes that change
the order
of an element by applying
order: -1
and order: 13
(order: $columns + 1
), respectively.
These classes can also
be intermixed with the numbered
.order-*
classes as needed.
You can offset grid columns in two ways: our responsive .offset-
grid classes and our margin utilities. Grid classes
are
sized to match columns while margins are more useful for quick layouts where
the width of the offset is variable.
Move columns to the right using .offset-md-*
classes. These classes
increase the left margin of a column by *
columns. For
example,
.offset-md-4
moves .col-md-4
over four columns.
In addition to column clearing at responsive breakpoints, you may need to reset offsets. See this in action in the grid example.
With the move to flexbox in v4, you can use margin utilities like .me-auto
to force sibling columns away
from one another.
To nest your content with the default grid, add a new .row
and set of .col-sm-*
columns within an existing
.col-sm-*
column. Nested rows should include a set of columns that add up to 12 or
fewer (it is not required that you use all 12 available columns).
When using Bootstrap’s source Sass files, you have the option of using Sass variables and mixins to create custom, semantic, and responsive page layouts. Our predefined grid classes use these same variables and mixins to provide a whole suite of ready-to-use classes for fast responsive layouts.
Variables and maps determine the number of columns, the gutter width, and the media query point at which to begin floating columns. We use these to generate the predefined grid classes documented above, as well as for the custom mixins listed below.
Mixins are used in conjunction with the grid variables to generate semantic CSS for individual grid columns.
You can modify the variables to your own custom values, or just use the mixins with their default values. Here’s an example of using the default settings to create a two-column layout with a gap between.
Using our built-in grid Sass variables and maps, it’s possible to completely customize the predefined grid classes. Change the number of tiers, the media query dimensions, and the container widths—then recompile.
The number of grid columns can be modified via Sass variables. $grid-columns
is used to generate the
widths (in percent) of each individual column while $grid-gutter-width
allows breakpoint-specific widths that are divided evenly across padding-left
and padding-right
for the column gutters.
Moving beyond the columns themselves, you may also customize the number of
grid tiers. If you wanted just four grid tiers, you’d update the $grid-breakpoints
and
$container-max-widths
to something
like this:
When making any changes to the Sass variables or maps, you’ll need to save
your changes and recompile. Doing so will output a brand new set of
predefined grid classes for column widths, offsets, and
ordering. Responsive visibility utilities will also be updated to use the
custom breakpoints. Make sure to set grid values in px
(not rem
,
em
, or %
).