How to center a div in bootstrap3

2011 ワード

There are two approaches to centering a column  <div>  in Bootstrap 3:

Approach 1 (offsets):


The first approach uses Bootstrap's own offset classes so it requires no change in markup and no extra CSS. The key is to set an offset equal to half of the remaining size of the row. So for example, a column of size 2 would be centered by adding an offset of 5, that's  (12-2)/2 .
In markup this would look like:
<div class="row">

    <div class="col-md-2 col-md-offset-5"></div>

</div>


Now, there's an obvious drawback for this method, it only works for even column sizes, so only  .col-X-2.col-X-4col-X-6col-X-8  and  col-X-10  are supported.

Approach 2 (the old margin:auto)


You can center any column size by using the proven  margin: 0 auto;  technique, you just need to take care of the floating that is added by Bootstrap's grid system. I recommend defining a custom CSS class like the following:
.col-centered{

    float: none;

    margin: 0 auto;

}


Now you can add it to any column size at any screen size and it will work seamlessly with Bootstrap's responsive layout :
<div class="row">

    <div class="col-lg-1 col-centered"></div>

</div>


Note: With both techniques you could skip the  .row  element and have the column centered inside a  .container  but you would notice a minimal difference in the actual column size because of the padding in the container class.
Update:
Since v3.0.1 Bootstrap has a built-in class named  center-block  that uses  margin: 0 auto  but is missing  float:none . You can add that to your CSS to make it work with the grid system.