Bootstrap 3-Pourquoi la classe row est-elle plus large que son conteneur?

Je viens de commencer à utiliser Bootstrap 3. Je traverse une période difficile comprendre comment fonctionne la classe row. Existe-t-il un moyen d'éviter les padding-left et padding-right?

<div class="row" style="background:#000000">           
  <div class="col-xs-4 .col-xs-offset-1">
    col
  </div>
  <div class="col-xs-2">
    col
  </div>
  <div class="col-xs-2">
    col
  </div>
  <div class="col-xs-2">
    col
  </div>
</div>

Http://jsfiddle.net/petran/rdRpx/

96
demandé sur BBaysinger 2013-09-24 01:16:32

5 réponses

Dans tous les systèmes de grille, il y a des gouttières entre chaque colonne. Amorçage du système définit un 15px rembourrage sur la gauche et la droite de chaque colonne pour créer cette gouttière.

Le problème est que la première colonne ne devrait pas avoir une moitié de gouttière à gauche, et la dernière ne devrait pas avoir une moitié de gouttière à droite. Plutôt que d'utiliser une sorte de classe .first ou .last sur ces colonnes comme le font certains systèmes de grille, ils définissent plutôt la classe .row pour avoir des marges négatives qui correspondent au remplissage de colonne. Cela "tire" les gouttières des première et dernière colonnes, tout en les rendant plus larges.

Le .row div ne devrait jamais vraiment être utilisé pour contenir autre chose que des colonnes de grille. Si c'est le cas, vous verrez le contenu déplacé par rapport à toutes les colonnes, comme cela est évident dans votre violon.

Mise à jour:

Vous avez modifié votre question après avoir répondu, alors voici la réponse à la question que vous posez Maintenant: ajoutez la classe .container à la première <div>. Voir Travail exemple.

120
répondu Sean Ryan 2016-02-04 14:50:37

Voir ma réponse ci-dessous à un post similaire.

Pourquoi le bootstrap .ligne a une marge par défaut à gauche de 30px?

Vous utilisez essentiellement "clearfix" au lieu de "row". Il fait exactement la même chose que "row" en excluant la marge négative.

17
répondu Kyle 2017-05-23 12:34:42

J'ai utilisé la classe row dans la classe container et j'ai toujours eu le problème. Lorsque j'ai ajouté margin-left: auto; margin-right: auto; à la classe .row, cela a bien fonctionné.

10
répondu Jeffrey 2016-08-09 04:25:34

Avec bootstrap 3.3.7 ce problème est résolu en enveloppant le .ligne avec .conteneur de fluide.

9
répondu dbarma 2017-01-12 17:38:24

Pour tout futur développeur déboguant ce problème:

Bootstrap définit le remplissage des colonnes de ligne, de sorte qu'aucun contenu d'une ligne ne doit apparaître en dehors du conteneur. Si vous rencontrez cela et que vous utilisez le système de grille de bootstrap correctement en utilisant le col -... classes, il est probable que vous ayez des CSS supplémentaires quelque part en réinitialisant le remplissage sur les colonnes.

1
répondu JSideris 2016-11-18 00:42:03