Bootstrapの使い方の基礎の基礎
オリジナルアプリのフロント実装のためにBootstrapと格闘していますが、使えば使うほどフロントの奥の深さに圧倒されています。
それでもごく浅い部分については感覚がつかめてきたので、基本的な使い方を書いてみようと思います。
Bootstrap自体や導入方法についてはこちら。
グリッドシステム
初めて聞いた言葉だったんですが、画面を格子状に分割したレイアウトのことだそうです。
Bootstrapでは横幅を12分割しているので、かたまり(カラム)の大きさを1~12で指定します。
例えばカラムが3つ並んでいる時、全ての大きさを4に指定すると横幅ぴったりに3つが並び、大きさを6に指定すると2つが横に並び3つ目は2列目に並びます。
このあと例が出てきます。
基本の書き方
基本的にはcontainerの中にrow、その中にcolumnというように配置します。containerという箱を作って、その中に行を積んでいく、そして行の中には列が横に並んでいる、というイメージです。
例えば以下のように記述します。
<div class="container"> <div class="row bg-info"> <div class="col-4 border">カラム1</div> <div class="col-4 border">カラム2</div> <div class="col-4 border">カラム3</div> </div> </div>
するとこのように表示されます。
bg-infoは背景色を指定するもので、ここではrowに色をつけています。
col-4というのは大きさが4のカラムということです。全体の横幅が12なので、カラムの合計が12より小さければ横に並び、12を越えれば折り返して2列目に並びます。
borderはその要素に枠線をつけています。ここでは各カラムに枠線がついています。
大きさを変えて試してみる
いろいろいじって表示がどのように変わるか試してみます。
カラムをcol-4からcol-6に変える
<div class="container"> <div class="row bg-info"> <div class="col-6 border">カラム1</div> <div class="col-6 border">カラム2</div> <div class="col-6 border">カラム3</div> </div> </div>
3つ目のカラムが2段目に移動しました。
カラムをcol-10にしてみる
<div class="container"> <div class="row bg-info"> <div class="col-10 border">カラム1</div> <div class="col-10 border">カラム2</div> <div class="col-10 border">カラム3</div> </div> </div>
縦に3つ並び、左に詰めているので右に余白ができました。
カラムをcol-3にしてみる
<div class="container"> <div class="row bg-info"> <div class="col-3 border">カラム1</div> <div class="col-3 border">カラム2</div> <div class="col-3 border">カラム3</div> </div> </div>
また1行に3つが並び、左に詰めています。
justify-content
rowのクラスにjustify-contentをつけることで、カラムの横の位置を指定することもできます。
<div class="container"> <div class="row bg-info justify-content-around"> <div class="col-3 border">カラム1</div> <div class="col-3 border">カラム2</div> <div class="col-3 border">カラム3</div> </div> </div>
間隔を開けて並びました。もちろんjustify-content-centerやjustify-content-betweenなども使うことができます。
rowを重ねる
rowを重ねると、新しい行を作ることができます。
<div class="container"> <div class="row bg-info justify-content-around"> <div class="col-3 border">カラム1</div> <div class="col-3 border">カラム2</div> <div class="col-3 border">カラム3</div> </div> <div class="row bg-info"> <div class="col-4 border">カラム4</div> <div class="col-4 border">カラム5</div> <div class="col-4 border">カラム6</div> </div> </div>
一つ目のrowの下に二つ目のrowが表示されました。
まとめ
- Bootstrapは12分割のグリッドシステム
- クラス名をつけるだけでレイアウトを変更できる
- containerの中にrow、その中にcolを並べる
出来ることはかなり多いので、自分のやりたいことが実現できる方法を見つけられるかがポイントのような気がしています。
公式サイト。