Bootstrap gives the class "container" a padding of 15px.
Class "row" gets a padding of -15px. This practically cancels the padding which is applied upon "container".
Elements with the "col"-class get a padding of 15px.
Reason behinds this is obviously that the adding up of the paddings on the very left / very right shall be avoid.
=> Without the negative padding on "row" > "container" and "col" would add up to 30px. We would have a padding of 30px on the left and on the right.
You would have to use CSS-rules like "col:first-of-type { padding-left: 0; }" to remove the undesired padding from the first and last col-element.
What I don't understand: Why not just adding the paddings to the lowest elements (the elements with the "col"-class)?
If every "col"-element has a padding of 15px to the left and the right and "container" and "row" got both 0 padding I would have the same effect.
What's the purpose of giving "container" a positive padding and then removing it again by giving "row" a negative padding?