ブートストラップ3-行クラスがコンテナーよりも広いのはなぜですか?


116

Bootstrap 3を使い始めました。行クラスがどのように機能するかを理解するのに苦労しています。padding-leftand を回避する方法はあり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/


@ドリフトはまだ本当ですか?私はそれらを使用してきましたが、それらが正常に機能しているように見えるため、それらが正しく機能しないという意味かどうかはわかりません。
シリアル

1
@シリアル:もうありません。これはされた追加 V3.0.2に
漂流

3
ブートストラップ行には-15pxの左右のマージンがあるためです。

おそらくあなたの問題ではなく、同じタイプの問題を抱えている他の人のために:divに1つのクラス属性のみがあることを確認してください。誤って2倍にして、同じ問題が発生しました。
One True Colter

回答:


151

すべてのグリッドシステムでは、各列の間に溝があります。Bootstrapのシステムでは、このガターを作成するために、各列の左側と右側の両方に15pxのパディングを設定しています。

問題は、最初の列の左側に半分の余白がなく、最後の列の右側に半分の溝がないことです。一部のグリッドシステムのようにこれらの列に何らかのクラス.firstまたは.lastクラスを使用するのではなく、代わり.rowに、列のパディングと一致する負のマージンを持つようにクラスを設定します。これにより、最初の列と最後の列のガターが「引っ張られ」、同時に幅が広くなります。

.rowdivが本当にグリッド列以外のものを保持するために使用すべきではありません。そうである場合、フィドルで明らかなように、コンテンツが列に対してシフトしているのがわかります。

更新:

私が答えた後であなたの質問を変更したので、ここであなたが今尋ねている質問への答えは次のとおりです。.container最初のクラスにクラスを追加し<div>ます。実例を参照しください。


2
グリッド列はマージンではなくパディングで区切られます(BS3内)
ドリフト

3
すごい!それはあふれているすべてのコンテンツを説明しています。
Rutwick Gangurde

27

ブートストラップ3.3.7では、この問題は.rowを.container-fluidでラップすることで解決されています。


これは私にとってはうまくいきましたが、最初はうまくいかなかったと思いましたが、それは、幅を狭くする開発者のWebコンソールを開いていたためですが、明らかにこれも台無しにしています。使用.container-fluidもここで提案されました:stackoverflow.com/a/23616447/5272567
Matthias

ラッピングdivが適切な位置にある場合にも機能しabsoluteます。ヒントをありがとう
InsOp 2017年

この回答に複数回投票できたら... :)
rony36

Bootstrap 4についても同じ修正
Rob L

19

同様の投稿に対する以下の返信を参照してください。

ブートストラップの.rowのデフォルトのmargin-leftが-30pxになっているのはなぜですか?

基本的に、「行」ではなく「クリアフィックス」を使用します。負のマージンを除いて「行」とまったく同じです。


2
これらのクラスは2つの異なることを行いますが、視覚的にはそうであるように見えます。
Todd Baur、2014

これにより、ラッパーの外側にあるオーバーフローコンテンツが解決されます。
Bhojendra Rauniyar

しかし、より良い方法は、コンテナで行をラップすることです。
Bhojendra Rauniyar

最高の答え!アップ!
Anderson Bressane、

18

コンテナークラス内で行クラスを使用しましたが、まだ問題がありました。私margin-left: auto; margin-right: auto;.rowクラスに追加したとき、それはうまくいきました。


8
これは魅力のように働きました!ブートストラップ4に「mx-auto」クラスを追加すると、オーバーフローの問題が修正されました。
ミシェルM.

3

@Michelle M.はこの回答の全額を受け取る必要があります。
彼女はコメントの一つで言った:

ブートストラップ4に「mx-auto」クラスを追加すると、オーバーフローの問題が修正されました。

最初のdiv要素を次のように更新する必要があります。

<div class="row mx-auto" style="background:#000000">

すべてのネストされた行に対してこれを行う必要はありません(それらがある場合)。垂直スクロールバーを回避
するmx-autoには、最も外側row(または行)に追加するだけです。
マージンを置き換える「行」クラスを追加して、すべてのブートストラップ行の動作をオーバーライドしないでください。


1

この問題をデバッグする将来の開発者向け:

ブートストラップは行列のパディングを設定するため、行の内容はコンテナの外側に表示されません。これが発生し、cols ...クラスを使用してブートストラップのグリッドシステムを正しく使用している場合、列のパディングをリセットする場所に追加のCSSがある可能性があります。


または、古いバージョンのBootstrapを使用しています。たとえば、VS2015で配布された3.0.0。参照してくださいgithub.com/twbs/bootstrap/issues/8959
アドベンチャー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.