グリッドレイアウトによるレスポンシブ Web デザインを Bootstrap 3 で行う方法を記載します。
こちらのページに記載した公式ドキュメントの一番最初に記載されている container はすべての要素の入れ物です。コンテンツ全体を container で囲みます。container には四種類の幅があります。container の左右にはマージンが作られます。入れ子にすることはできません。4 パターンしかないためピクセル単位のレイアウトを組みやすいという特長があります。基準値は bootstrap のカスタマイズによって変更可能です。
以下のように利用します。
<body>
<div class="container" style="background-color: #fafafa;">
<p>コンテンナの中身</p>
</div>
</body>
コンテナを 12 分割して考えます。一行全体を row クラスで囲みます。
<div class="container" style="background-color: #fafafa;">
<div class="row">
<div class="col-xs-6" style="background-color: #f00;">A</div>
<div class="col-xs-6" style="background-color: #0f0;">B</div>
</div>
</div>
数値によって横幅を指定します。
row クラスは入れ子にできます。やはり 12 分割です。
<div class="container" style="background-color: #fafafa;">
<div class="row">
<div class="col-xs-6" style="background-color: #f00;">A</div>
<div class="col-xs-6" style="background-color: #0f0;">
<div class="row">
<div class="col-xs-4" style="background-color: #00f;">B-1</div>
<div class="col-xs-4" style="background-color: #00f;">B-2</div>
<div class="col-xs-4" style="background-color: #00f;">B-3</div>
</div>
</div>
</div>
</div>
<div class="container" style="background-color: #fafafa;">
<div class="row">
<div class="col-xs-6" style="background-color: #f00;">A</div>
<div class="col-xs-offset-1 col-xs-5" style="background-color: #0f0;">B</div>
</div>
</div>
右にずらす (push) または左にずらす (pull)
<div class="container" style="background-color: #fafafa;">
<div class="row">
<div class="col-xs-6 col-xs-push-6" style="background-color: #f00;">A</div>
<div class="col-xs-6 col-xs-pull-6" style="background-color: #0f0;">B</div>
</div>
</div>
col-xs*
は ExtraSmall 以上に適用されます。col-sm*
は col-xs*
よりも優先度が高く Small 以上に適用されます。col-md*
および col-lg*
も同様です。
ExtraSmall のブラウザ幅になると二段組みから一段組みになる例
<div class="container" style="background-color: #fafafa;">
<div class="row">
<div class="col-xs-12 col-sm-6" style="background-color: #f00;">A</div>
<div class="col-xs-12 col-sm-6" style="background-color: #0f0;">B</div>
</div>
</div>
Small 以上になると左右反転する例
<div class="container" style="background-color: #fafafa;">
<div class="row">
<div class="col-xs-6 col-sm-push-6" style="background-color: #f00;">A</div>
<div class="col-xs-6 col-sm-pull-6" style="background-color: #0f0;">B</div>
</div>
</div>
<div class="container" style="background-color: #fafafa;">
<div class="row">
<div class="col-xs-6 hidden" style="background-color: #f00;">A</div>
<div class="col-xs-6 show" style="background-color: #0f0;">B</div>
</div>
<div class="row">
<div class="col-xs-6 invisible" style="background-color: #f00;">A</div>
<div class="col-xs-6 show" style="background-color: #0f0;">B</div>
</div>
</div>
Small のときに「だけ」hidden。Medium などは該当しないことに注意。
<div class="container" style="background-color: #fafafa;">
<div class="row">
<div class="col-xs-6 hidden-sm" style="background-color: #f00;">A</div>
<div class="col-xs-6" style="background-color: #0f0;">B</div>
</div>
</div>
Small のときに「だけ」visible (= not hidden) となります。該当しないときは invisible にはならないことに注意してください。hidden になり詰められます。Medium などは該当しないことにも注意します。
<div class="container" style="background-color: #fafafa;">
<div class="row">
<div class="col-xs-6 visible-sm-block" style="background-color: #f00;">A</div>
<div class="col-xs-6" style="background-color: #0f0;">B</div>
</div>
</div>
visible-*-block
→ display: block;
に相当visible-*-inline
→ display: inline;
に相当visible-*-inline-block
→ display: inline-block;
に相当hidden-print
→ 印刷時に hiddenvisible-print-block
→ 印刷時に not hidden (block)visible-print-inline
→ 印刷時に not hidden (inline)visible-print-inline-block
→ 印刷時に not hidden (inline-block)グリッドレイアウトの列には 15px のパディングが既定値となっています。例えば padding 0 を指定することで対応します。
<div class="container" style="background-color: #fafafa;">
<div class="row">
<div class="col-xs-6" style="padding:0;"><img class="img-responsive" src="path/to/picture.jpg"></div>
<div class="col-xs-6" style="background-color: #0f0;">B</div>
</div>
</div>