ブートストラップ列を複数の行にまたがらせるにはどうすればよいですか?


158

Bootstrapで次のグリッドを実行する方法を理解しようとしています。

2つの行にまたがるボックス(1番)をどのように作成するかわかりません。ボックスは、配置された順序でプログラムによって生成されます。ボックス1はウェルカムメッセージです。

ここに画像の説明を入力してください

これに行くための最良の方法についてのアイデアはありますか?


1
twitter.github.io/bootstrap/scaffolding.html#gridSystem、Bootstrapグリッドシステムをネストできます。
TheHippo 2013年

1
では、3つではなく2つの行を作成して、最初の行内に2つの行を入れ子にしますか?これは、ボックスがプログラムで生成される場合に問題になる可能性があります。
James Jeffery 2013年

1
それがうまくいくかどうかはわかりませんがpull-left、すべてのボックスにクラスを追加するとうまくいきますか?ボックス1の高さを2 + 4と同じにすることはできませんが、高さを設定すると機能するはずです。
Hailwood 2013年

ヘイルウッド、できれば答えにしてください。できれば、コードを貼り付けます。少なくともChromeでは機能しました。他のブラウザでテストする必要があります。
James Jeffery 2013年

@Hailwoodはそのままで、左に引く必要はありません。最初の要素に高さを設定するだけで機能します。
James Jeffery 2013年

回答:


164

Bootstrap 3の場合:

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"/>


<div class="row">
    <div class="col-md-4">
        <div class="well">1
            <br/>
            <br/>
            <br/>
            <br/>
            <br/>
        </div>
    </div>
    <div class="col-md-8">
        <div class="row">
            <div class="col-md-6">
                <div class="well">2</div>
            </div>
            <div class="col-md-6">
                <div class="well">3</div>
            </div>
        </div>
        <div class="row">
            <div class="col-md-6">
                <div class="well">4</div>
            </div>
            <div class="col-md-6">
                <div class="well">5</div>
            </div>
        </div>
    </div>
</div>
<div class="row">
    <div class="col-md-4">
        <div class="well">6</div>
    </div>
    <div class="col-md-4">
        <div class="well">7</div>
    </div>
    <div class="col-md-4">
        <div class="well">8</div>
    </div>
</div>

Bootstrap 2の場合:

JSFiddle(Bootstrap 2)のデモを参照してください:http ://jsfiddle.net/SxcqH/52/


ボックス1が大きくなるにつれて、ボックス4と5を行の高さに合わせるにはどうすればよいでしょうか。
Imran NZ、


これは例としてはうまくいきません。最初の列の下端が残りの列とわずかにずれています。
JackKalish 2016

これは素晴らしい答えですが、ボックス5も行3に拡張する必要があり、さらに動的に拡張する必要がある場合はどうでしょうか。
ミシャエル2016

@ Misha'elこれは非常に単純です。ボックス1に対して彼がしたことを実行し、ボックス3/5に適用します。同じサイズの3つの列があるはずです。外側の列は1行だけで、内側の列は2行です。
ネイサンウィリアムズ

17

コメントが示唆するように、解決策はネストされたスパン/行を使用することです。

<div class="container">
    <div class="row">
        <div class="span4">1</div>
        <div class="span8">
            <div class="row">
                <div class="span4">2</div>
                <div class="span4">3</div>
            </div>
            <div class="row">
                <div class="span4">4</div>
                <div class="span4">5</div>
            </div>
        </div>
    </div>
    <div class="row">
        <div class="span4">6</div>
        <div class="span4">7</div>
        <div class="span4">8</div>
    </div>
</div>

1

以下の例はうまくいくようです。最初の要素に高さを設定するだけ

<ul class="row">
    <li class="span4" style="height: 100px"><h1>1</h1></li>
    <li class="span4"><h1>2</h1></li>
    <li class="span4"><h1>3</h1></li>
    <li class="span4"><h1>4</h1></li>
    <li class="span4"><h1>5</h1></li>
    <li class="span4"><h1>6</h1></li>
    <li class="span4"><h1>7</h1></li>
    <li class="span4"><h1>8</h1></li>
</ul>

私は仕方がないのですが、行の使い方が間違っていると思います。


1

行をまたぐ方法に関する部分は完全に(つまり、行をネストすることによって)解決されたと思いますが、ネストされた行がコンテナーを満たさないという問題にも遭遇しました。フレックスボックスと負のマージンはオプションですが、はるかに簡単な解決策はh-50rowボックス2、3、4、および5を含む定義済みのクラスを使用することです。

注: 私はを使用Bootstrap-4しています。同じ問題に遭遇し、これがよりエレガントな解決策であることがわかったので、共有したかっただけです:)


0
<div class="row">
  <div class="col-4 alert alert-primary">
     1
  </div>
  <div class="col-8">
    <div class="row">
      <div class="col-6 alert alert-primary">
        2
      </div>
      <div class="col-6 alert alert-primary">
        3
      </div>
      <div class="col-6 alert alert-primary">
        4
      </div>
      <div class="col-6 alert alert-primary">
        5
      </div>
    </div>
  </div>
</div>
<div class="row">
  <div class="col-4 alert alert-primary">
    6
  </div>
  <div class="col-4 alert alert-primary">
    7
  </div>
  <div class="col-4 alert alert-primary">
    8
  </div>
</div>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.