Je viens de commencer à utiliser Bootstrap 3. J'ai du mal à comprendre comment fonctionne la classe row. Existe-t-il un moyen d'éviter le 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>
Réponses:
Dans tous les systèmes de grille, il y a des gouttières entre chaque colonne. Le système de Bootstrap définit un rembourrage de 15 px à la fois à gauche et à droite de chaque colonne pour créer cette gouttière.
Le problème est que la première colonne ne doit pas avoir une demi-gouttière à gauche et la dernière ne doit pas avoir une demi-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 à la place.row
des marges négatives qui correspondent au remplissage des colonnes. Cela «tire» les gouttières des première et dernière colonnes, tout en l'élargissant.Le
.row
div ne doit jamais vraiment être utilisé pour contenir autre chose que des colonnes de grille. Si tel est le cas, vous verrez le contenu décalé par rapport à n'importe quelle colonne, comme le montre votre violon.METTRE À JOUR:
Vous avez modifié votre question après avoir répondu, voici donc la réponse à la question que vous posez maintenant: ajoutez la
.container
classe à la première<div>
. Voir l' exemple de travail .la source
Avec bootstrap 3.3.7, ce problème est résolu en enveloppant le .row avec .container-fluid.
la source
.container-fluid
a également été suggérée ici: stackoverflow.com/a/23616447/5272567absolute
. merci pour l'indiceVoir ma réponse ci-dessous à un message similaire.
Pourquoi le bootstrap .row a-t-il une marge gauche par défaut de -30px?
Vous utilisez essentiellement "clearfix" au lieu de "row". Il fait exactement la même chose que "ligne" en excluant la marge négative.
la source
J'ai utilisé la classe de ligne à l'intérieur de la classe de conteneur et j'ai toujours eu un problème. Quand j'ai ajouté
margin-left: auto; margin-right: auto;
à la.row
classe, cela a bien fonctionné.la source
@Michelle M. devrait recevoir le crédit complet pour cette réponse.
Elle a dit dans l'un des commentaires:
Vous devrez mettre à jour votre premier
div
élément comme ceci:Pas besoin de faire cela pour toutes les lignes imbriquées (si vous en avez).
Ajoutez simplement
mx-auto
à la plus externerow
(ou aux lignes) pour éviter la barre de défilement vertical.Ne remplacez pas le comportement de toutes les lignes Bootstrap en ajoutant une classe «ligne» pour remplacer les marges.
la source
Pour tous les futurs développeurs 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 correctement le système de grille de bootstrap en utilisant les classes col -..., il est probable que vous ayez du CSS supplémentaire quelque part pour réinitialiser le remplissage sur les colonnes.
la source