前回、前々回と続けてきたflexboxですが、最後にflexboxを使ってグリッドレイアウトをするサンプルを作ってみました。注
flexbox-grid-sample
https://github.com/rlated/flexbox-grid-sample
使い方
使い方は次のような感じです。
<div class="container">
<div class="row">
<div class="col-4"></div>
<div class="col-8"></div>
</div>
<div class="row">
<div class="col-4"></div>
<div class="col-4"></div>
<div class="col-4"></div>
</div>
</div>
まず、グリッドレイアウトしたい部分全体をclass="container"
で囲みます。
続いて、レイアウト内容に合わせて、1行ごとにclass="row"
を入れます。幅は(よくあるパターンだと思いますが)12等分した内のいくつ分かをclass="col-N"
で指定していきます。col-4
とすると1/3、col-8
とすると2/3の幅。注
各コンテンツ間にスペース(余白)を入れたい場合はpad
を追加するようにしてみました。
<div class="container pad">
<!-- 省略 -->
</div>

レスポンシブ対応として、描画領域の幅が768px
未満の場合は全てを1カラムで表示するようにしています。1カラム表示の境界を変更したい場合はcssの下記部分を修正(もしくは削除)してください。
@media screen and (max-width: 767px){ ... }
サンプル
こちらが実際に使ってみたサンプルです。(リンク)

※pad
を付けているので、20pxの余白があります。
サンプル2(3カラムレイアウト)
ブログ等でよく使われる3カラムレイアウトのサンプルです。(リンク)
3カラム表示

1カラム表示(絵画領域の幅が768px未満の場合)

注 わざわざ作っておいて何ですが、従来からあるシステムをflexboxで置き換える意味は基本的にないと思います。
注 flexboxを使っているので、実は合計が12にならなくても良かったりします。