Bootstrap 3: The Grid System and Media Queries

We all know Bootstrap, as it's the most popular open source web framework. Mark Otto and Jacob Thorton managed to create one of the most powerful CSS frameworks ever designed.



When Bootstrap 3 was released, the most interesting change was the difference in the grid systems. Bootstrap 2 catered to two different browser sizes (desktop and then mobile). With Bootstrap 3, you now build with mobile in mind first, and the grid system lets you create different grids based on browser size. A similar trend is observed in the most recent version of the framework - Alpha Release of the Bootstrap 4.

Bootstrap 2

Bootstrap 3

Bootstrap 4

The grid you create works on desktops and then stacks on top of each other when browser size is below 767px. This is limited since you can only define 1 grid on desktop sized browsers. You are left with a stacked grid on mobile devices. The new Bootstrap grid system applies to mobile first. When you declare a specific grid size that is the grid for that size and above. The latest Bootstrap version offers improved grid system with a new tier that allows you to target mobile users better than ever before. Additionally, semantic mixins have undergone the major update as well. From now on you can access all the necessary mixins in any place out of the box.

Bootstrap 3 Columns Example

This can be a little hard to grasp at first so here’s an example. Let’s say you want a site that has:

  • 1 column on extra small devices
  • 2 columns on small AND medium devices
  • 4 columns on large devices

Since the grid system now cascades up from mobile devices, this is how this code will look.

This is part of our grid.
This is part of our grid.
This is part of our grid.
This is part of our grid.

We don’t have to define anything for extra small devices since the default is one column. We have to define a grid size for small devices, but not for medium devices. This is because the grid cascades up. So if you define a size at sm, then it will be that grid size for sm, md, and lg. We’ll explain the different grid sizes and how you create them and then show examples.


The Grid Sizes

This is the best part about the new grid system. You could realistically have your site show a different grid on 4 different browser sizes. Below is the breakdown of the different sizes.

.col-xs-$ Extra Small Phones Less than 768px
.col-sm-$ Small Devices Tablets 768px and Up
.col-md-$ Medium Devices Desktops 992px and Up
.col-lg-$ Large Devices Large Desktops 1200px and Up

The official Bootstrap docs offer a much more comprehensive understanding of how the grid works. Take a look at those to get a more solid overview of column sizes, gutter sizes, maximum column sizes, and the max-width of your overall site based on browser size.


Default Sizes for the Bootstrap Grid

Sometimes you will need to use media queries to get your site to act the way you’d like it to. Knowing the default grid sizes is essential to extending the Bootstrap grid. We’ve written up a quick tip to show you the default sizes so take a look if you need the Bootstrap media queries and breakpoints.


Bootstrap 3 Media Query Breakpoints

Bootstrap 3 is a mobile-first front-end framework. I’ve included the correct order for the Media Queries below, but I’ve also included at the bottom of them the non-mobile first breakpoints in case some people aren’t used to the mobile-first methodology since technically both will work. Min-Width: Refers to everything greater than or equal to the amount given. Max-Width: Refers to everything less than or equal to the amount given.

/*==================================================
=            Bootstrap 3 Media Queries             =
==================================================*/
 
 
 
 
 /*==========  Mobile First Method  ==========*/
 
 /* Custom, iPhone Retina */
 @media only screen and (min-width : 320px){
 
 }
 
 /* Extra Small Devices, Phones */
 @media only screen and (min-width : 480px){
 
 }
 
 /* Small Devices, Tablets */
 @media only screen and (min-width : 768px){
 
 }
 
 /* Medium Devices, Desktops */
 @media only screen and (min-width : 992px){
 
 }
 
 /* Large Devices, Wide Screens */
 @media only screen and (min-width : 1200px){
 
 }
 
 
 
 /*==========  Non-Mobile First Method  ==========*/
 
 /* Large Devices, Wide Screens */
 @media only screen and (max-width : 1200px){
 
 }
 
 /* Medium Devices, Desktops */
 @media only screen and (max-width : 992px){
 
 }
 
 /* Small Devices, Tablets */
 @media only screen and (max-width : 768px){
 
 }
 
 /* Extra Small Devices, Phones */
 @media only screen and (max-width : 480px){
 
 }
 
 /* Custom, iPhone Retina */
 @media only screen and (max-width : 320px){
 
 }

Bootstrap 2.3.2 Media Query Breakpoints

/*=====================================================
=            Bootstrap 2.3.2 Media Queries            =
=====================================================*/
@media only screen and (max-width : 1200px){
 
}
 
@media only screen and (max-width : 979px){
 
}
 
@media only screen and (max-width : 767px){
 
}
 
@media only screen and (max-width : 480px){
 
}
 
@media only screen and (max-width : 320px){
 
}

Responsive Utilities

Just like Bootstrap 2, Bootstrap 3 provides responsive utilities for hiding and showing elements based on the browser size. This will also help us in defining our grid system.

.visible-xs
.visible-sm
.visible-md
.visible-lg
.hidden-xs
.hidden-sm
.hidden-md
.hidden-lg

This helps because we are able to show certain elements based on size. In our examples today, we’ll be showing an extra sidebar on large desktops.


Examples

Here are a few examples of the grids that you can create. We’ll go through some basic sites that some people might want and show how easy it is to build that site with the Bootstrap 3 grid.


Simple: Large Desktop vs Mobile

Let’s say you wanted a site to have 1 column on extra small (phone) and small (tablet) devices, 2 columns on medium (medium desktop) devices, and 4 columns on large (desktop) devices.

Here is the code for that example:

Large Devices!
Medium Devices!
Extra Small and Small Devices
Medium Devices!
Extra Small and Small Devices
Large Devices!
Medium Devices!
Extra Small and Small Devices
Large Devices!
Medium Devices!
Extra Small and Small Devices

Intermediate: Show Extra Column on Large Desktops

This is an interesting example and one that the new grid excels at. Let’s say you have a site that has a sidebar and a main content section. For extra small devices, you want one column, main content with the sidebar stacked below it. For small and medium devices, we want sidebar and main content to sit side by side. Now for large devices, we want to utilize the space on larger devices. We want to add an extra sidebar to show more content. We change the size of the main content to span 6 columns on large devices to make room for our second sidebar. This is a great way to utilize the space on larger desktops. And here is the code for that example.

I am the main content.
I am the main sidebar.
I am the secondary sidebar that only shows up on LARGE devices.

Advanced: Different Grid For Every Size

This will be a more complex example. Let’s say that at no point in our grid system do we want all of our columns to stack. For extra small devices, we want 2 columns. For small devices, we want 3 columns. For medium devices, we want 4 columns. For large devices, we want 6 columns (one that only shows on large devices).

You get the drill now. Let’s just straight into the example and code.

I'm content!
I'm content!
I'm content!
I'm content! I'm content!
I'm content only visible on large devices!

You can see that as the browser size gets smaller, the columns start to form. Also, the content inside each will begin stacking.


It’s Gridtactic!

You can see how easily it is to build complex and dynamic sites with the Bootstrap 3 grid. From mobile 2 column sites to complex hiding and showing elements on large desktops, you can build any type of site. Hopefully, these examples will give you an idea of the flexibility of the new grid system and all the great things you can create.

Happy Coding J.

If you already have an HTML-based website with an existing admin panel, you might want to review our Bootstrap Admin Themes built with Bootstrap functionality. These bootstrap themes will show you the full power of Bootstrap 3!


Ahmed Faisal

How to make your website responsive and how to work with Bootstrap like a pro? Check out in Ahmed's articles.

Get more to your email

Subscribe to our newsletter and access exclusive content and offers available only to MonsterPost subscribers.

From was successfully send!
Server error. Please, try again later.