Grid system

eCommerce grid system

Grid layouts dedicated to building eCommerce projects.


Basic examples

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 followed by an in-depth look at how the grid comes together.

Three equal columns

One of three columns
One of three columns
One of three columns


            <div class="container">
              <div class="row">
                <div class="col-sm">
                  One of three columns
                </div>
                <div class="col-sm">
                  One of three columns
                </div>
                <div class="col-sm">
                  One of three columns
                </div>
              </div>
            </div>

   

Two equal columns

One of two columns
One of two columns


            <div class="container">
              <div class="row">
                <div class="col-sm col-example">
                  One of two columns
                </div>
                <div class="col-sm col-example">
                  One of two columns
                </div>
              </div>
            </div>

     

Four equal columns

One of four columns
One of four columns
One of four columns
One of four columns


            <div class="container">
              <div class="row">
                <div class="col-sm col-example">
                  One of three columns
                </div>
                <div class="col-sm col-example">
                  One of three columns
                </div>
                <div class="col-sm col-example">
                  One of three columns
                </div>
                <div class="col-sm col-example">
                  One of three columns
                </div>
              </div>
            </div>

     

Five grid tiers

There are five tiers to the Bootstrap grid system, one for each range of devices we support. Each tier starts at a minimum viewport size and automatically applies to the larger devices unless overridden.

.col-4
.col-4
.col-4
.col-sm-4
.col-sm-4
.col-sm-4
.col-md-4
.col-md-4
.col-md-4
.col-lg-4
.col-lg-4
.col-lg-4
.col-xl-4
.col-xl-4
.col-xl-4

      <div class="container">
        <div class="row">
          <div class="col-4">.col-4</div>
          <div class="col-4">.col-4</div>
          <div class="col-4">.col-4</div>
        </div>

        <div class="row">
          <div class="col-sm-4">.col-sm-4</div>
          <div class="col-sm-4">.col-sm-4</div>
          <div class="col-sm-4">.col-sm-4</div>
        </div>

        <div class="row">
          <div class="col-md-4">.col-md-4</div>
          <div class="col-md-4">.col-md-4</div>
          <div class="col-md-4">.col-md-4</div>
        </div>

        <div class="row">
          <div class="col-lg-4">.col-lg-4</div>
          <div class="col-lg-4">.col-lg-4</div>
          <div class="col-lg-4">.col-lg-4</div>
        </div>

        <div class="row">
          <div class="col-xl-4">.col-xl-4</div>
          <div class="col-xl-4">.col-xl-4</div>
          <div class="col-xl-4">.col-xl-4</div>
        </div>
      </div>
      

Three equal columns

You can have three equal-width columns starting at desktops and scaling to large desktops. On mobile devices, tablets and smaller, the columns will automatically stack.

.col-md-4
.col-md-4
.col-md-4

        <div class="container">
          <div class="row">
            <div class="col-md-4">.col-md-4</div>
            <div class="col-md-4">.col-md-4</div>
            <div class="col-md-4">.col-md-4</div>
          </div>
        </div>
      

Three unequal columns

You can also have three columns starting at desktops and scaling to large desktops of various widths. Remember, grid columns should add up to twelve for a single horizontal block. More than that — then columns start stacking no matter the viewport.

.col-md-3
.col-md-6
.col-md-3

        <div class="container">
          <div class="row">
            <div class="col-md-3">.col-md-3</div>
            <div class="col-md-6">.col-md-6</div>
            <div class="col-md-3">.col-md-3</div>
          </div>
        </div>
      

Two columns

Get two columns starting at desktops and scaling to large desktops.

.col-md-8
.col-md-4

        <div class="container">
          <div class="row">
            <div class="col-md-8">.col-md-8</div>
            <div class="col-md-4">.col-md-4</div>
          </div>
        </div>
      

Full width, single column

No grid classes are necessary for full-width elements.

Two columns with two nested columns

As in the documentation, nesting is easy — just put a row of columns within an existing column. This gives you two columns starting at desktops and scaling to large desktops, with another two (equal widths) within the larger column.

At mobile device sizes, tablets and down, these columns and their nested columns will stack.
.col-md-8
.col-md-6
.col-md-6
.col-md-4

        <div class="container">
          <div class="row">
            <div class="col-md-8">
              .col-md-8
              <div class="row">
                <div class="col-md-6">.col-md-6</div>
                <div class="col-md-6">.col-md-6</div>
              </div>
            </div>
            <div class="col-md-4">.col-md-4</div>
          </div>
        </div>
      

Mixed: mobile and desktop

The Bootstrap v4 grid system has five tiers of classes: xs (extra small), sm (small), md (medium), lg (large), and xl (extra large). You can use nearly any combination of these classes to create more dynamic and flexible layouts.

Each tier of classes scales up, meaning if you plan on setting the same widths for xs and sm, you only need to specify xs.

.col-12 .col-md-8
.col-6 .col-md-4
.col-6 .col-md-4
.col-6 .col-md-4
.col-6 .col-md-4
.col-6
.col-6

        <div class="container">
          <div class="row">
            <div class="col-12 col-md-8 ">.col-12 .col-md-8</div>
            <div class="col-6 col-md-4">.col-6 .col-md-4</div>
          </div>
          <div class="row">
            <div class="col-6 col-md-4">.col-6 .col-md-4</div>
            <div class="col-6 col-md-4">.col-6 .col-md-4</div>
            <div class="col-6 col-md-4">.col-6 .col-md-4</div>
          </div>
          <div class="row">
            <div class="col-6">.col-6</div>
            <div class="col-6">.col-6</div>
          </div>
        </div>
      

Mixed: mobile, tablet and desktop

.col-12 .col-sm-6 .col-lg-8
.col-6 .col-lg-4
.col-6 .col-sm-4
.col-6 .col-sm-4
.col-6 .col-sm-4

        <div class="container">
          <div class="row">
            <div class="col-12 col-sm-6 col-lg-8">.col-12 .col-sm-6 .col-lg-8</div>
            <div class="col-6 col-lg-4">.col-6 .col-lg-4</div>
          </div>
          <div class="row">
            <div class="col-6 col-sm-4">.col-6 .col-sm-4</div>
            <div class="col-6 col-sm-4">.col-6 .col-sm-4</div>
            <div class="col-6 col-sm-4">.col-6 .col-sm-4</div>
          </div>
        </div>