Bootstrap 3 - Why is row class is wider than its container?

See my reply below to similar post.

Why does the bootstrap .row has a default margin-left of -30px?

You basically use "clearfix" instead of "row". It does the exact same as "row" excluding the negative margin.


In all grid systems, there are gutters between each column. Bootstrap's system sets a 15px padding on both the left and the right of each column to create this gutter.

The issue is that the first column should not have half a gutter on the left, and the last should not have half a gutter on the right. Rather than use some sort of .first or .last class on those columns as some grid systems do, they instead set the .row class to have negative margins that match the padding of the columns. This "pulls" the gutters off of the first and last columns, while at the same time making it wider.

The .row div should never really be used to hold anything other than grid columns. If it is, you will see the content shifted relative to any columns, as is evident in your fiddle.

UPDATE:

You modified your question after I answered, so here is the answer to the question you are now asking: Add the .container class to the first <div>. See working example.


With bootstrap 3.3.7 this problem is solved wrapping the .row with .container-fluid.