Bootstrapのグリッドシステムやcontainerとは?

トモジのアイコン画像トモジ

グリッドシステムって何?
詳しく知りたい・・

本記事は、
上記のような方に向けて記事を書いています。

こんにちは、トモジです。

私はプログラミング未経験から独学で勉強して、
簡易的な動的サイト・ゲーム・サービスが作れる状態になりました。

本記事は、グリッドシステムに関して要点を
わかりやすく説明しております。

記事の内容

1.Bootstrapのグリッドシステムとは?

グリッドシステムとは、Bootstrapの
ページレイアウトを自在にコントロールするための
強力な仕組みになります。

グリッドシステムの考え方

グリッドシステムは、カラムというエリアを
縦に12分割して管理をします。

また、レスポンシブ(デバイスのサイズに対応)な
変化をさせることが可能です。

グリッドシステムの説明図
レスポンシブに関しての説明図

グリッドシステムの使い方

グリッドシステムは、div要素にrowクラスを作り、その中にcolクラスを記述します。

rowとcolの説明図
rowとcolの表示図

グリッドシステムに関して

<body>
    <div class="row">
        <div class="col green">A</div>
        <div class="col yellow">B</div>
        <div class="col red">C</div>
    </div>
</body>
.green{
    background-color: green;
    height: 50px;
}

.yellow{
    background-color:yellow;
    height: 50px;
}

.red{
    background-color: red;
    height: 50px;
}
出力結果



A
B
C

グリッドシステム(カラム幅を変更)

カラム幅の変更は非常に簡単で、
col-カラム数のクラスと記述します。

グリッドシステムの幅変更説明図
rowとcol(カラム幅変更)の表示図

グリッドシステム(カラム幅を変更)に関して

<body>
    <div class="row">
        <div class="col-3 green">A</div>
        <div class="col-4 yellow">B</div>
        <div class="col-5 red">C</div>
    </div>
</body>
.green{
    background-color: green;
    height: 50px;
}

.yellow{
    background-color:yellow;
    height: 50px;
}

.red{
    background-color: red;
    height: 50px;
}
出力結果



A
B
C

グリッドシステム
(合計が12カラムではない場合)

グリッドシステムが合計12カラムではない場合に
どの様な変化が起きるのか見ていきましょう。

合計が12カラムより少ない場合

合計カラムが12より少ない場合は、
左詰めでカラム数分の表示になります。

合計カラムが12より少ない場合
合計カラムが12より少ない場合

合計が12カラムより少ない

<body>
    <div class="row">
        <div class="col-3 green">A</div>
        <div class="col-4 yellow">B</div>
    </div>
</body>
.green{
    background-color: green;
    height: 50px;
}

.yellow{
    background-color:yellow;
    height: 50px;
}
出力結果



A
B

合計が12カラムより多い場合

合計カラムが12より多い場合は、
12を超えるカラムから改行されます。

合計カラムが12より多い場合
合計カラムが12より多い場合

合計が12カラムより多い

<body>
    <div class="row">
        <div class="col-3 green">A</div>
        <div class="col-4 yellow">B</div>
        <div class="col-6 red">C</div>
    </div>
</body>
.green{
    background-color: green;
    height: 50px;
}

.yellow{
    background-color:yellow;
    height: 50px;
}

.red{
    background-color: red;
    height: 50px;
}
出力結果



A
B
C

グリッドシステムのネスト(入れ子)

グリッドシステムは、ネスト構造で
記述することも可能ですが注意が必要です。

内部のグリッドシステムは、
外部で指定した幅を12分割をして
グリッドシステムを構築します。

ネスト構造の説明図

グリッドシステムのネスト

<body>
    <div class="row">
        <div class="col-9" style="border:solid 1px #000;">
            <div class="row">
                <div class="col-12 green">A1</div>
            </div>
            <div class="row">
                <div class="col-6 green">B1</div>
                <div class="col-3 yellow">B2</div>
                <div class="col-3 red">B3</div>
            </div>
            <div class="row">
                <div class="col green">C1</div>
                <div class="col yellow">C2</div>
                <div class="col red">C3</div>
            </div>
        </div>
        <div class="col-3" style="border:solid 1px #000;">
            <p>サイド</p>
        </div>
    </div>
</body>
.green{
    background-color: green;
    height: 50px;
    border:solid 1px #000
}

.yellow{
    background-color:yellow;
    height: 50px;
    border:solid 1px #000
}

.red{
    background-color: red;
    height: 50px;
    border:solid 1px #000
}
出力結果



A1
B1
B2
B3
C1
C2
C3

サイド

レスポンシブ

レスポンシブとは、
ブレイクポイントを記述することでデバイスでの
表示設定を切り替えることができます。

以下の図がブレイクポイントになり、
横幅のサイズを変更する際に設定が対応されます。

ブレイクポイントの図

記述方法

レスポンシブな設定(コード)
レスポンシブな設定(表示)

レスポンシブに関して


<body>
    <div class="row">
        <div class="col-12 col-md-6 green">A</div>
        <div class="col-6 col-md-3 yellow">B</div>
        <div class="col-6 col-md-3 red">C</div>
    </div>
</body>
.green{
    background-color: green;
    height: 50px;
}

.yellow{
    background-color:yellow;
    height: 50px;
}

.red{
    background-color: red;
    height: 50px;
}
出力結果

※横幅を変更すると切り替わります

A
B
C

2.コンテナの設定

グリッドシステムを使用する際に、
containercontainer-fluid
クラスで囲む決まりになっており
左右に余白を設けてページ中央に配置する
設定になります。

container

containerクラスは、
左右に15pxの余白と中央寄せが設定されます。

containerのコード
containerの説明

containerに関して


<body>
    <p>containerなし</p>
    <div class="container">
        <p>containerあり</p>
    </div>
</body>
p{
   background-color: #B0DDE0;
   font-size:10px;
}
出力結果
   

containerなし

containerあり

container-fluid

流動的コンテナを意味するcontainer-fluidは、画面いっぱい(width: 100%)に広がる設定になります。

container-fuild
container-fuildの説明

container-fluidに関して


<body>
    <p>container</p>
    <div class="container-fluid">
        <p>container-fluidあり</p>
    </div>
</body>
p{
   background-color: #B0DDE0;
   font-size:10px;
}
出力結果
   

container

container-fluidあり

containerとrowの余白の関係

containerrowを使用すると
以下の理由で余白は0になります。

余白について

container
左右に15pxの余白が設けられる


row
領域を左右に15px広げられる

containerとcontainer-fluidの違い

containerとcontainer-fluidの大きな違いは、
画面サイズ(横幅)を変更する際に違いが出てきますので見ていきましょう。

container

containerは、
ブレイクポイントで段階的に横幅が変化します。

 ブレイクポイント(横幅)の説明図
containerの幅に関しての説明図

container-fluid

container-fluidは、
画面サイズに応じて幅に変化が起きます。

まとめ

最後にこの記事のポイントをまとめておきます。

まとめ

グリッドシステム

  • カラム数
    エリアを縦に12分割して管理

  • 記述方法
    div要素にrowクラスを作り、
    その中にcolクラスを記述

  • カラム幅の変更
    カラム数で管理

  • 合計カラム12以下
    左詰めでカラム数分の表示

  • 合計カラム12以上
    12を超えるカラムから改行して表示

  • ネスト構造
    外部カラムを12分割して表示

  • ブレイクポイント
    デバイスでの表示設定を切り替えて表示


コンテナの設定

  • container
    左右に15pxの余白と中央寄せ

  • container-fluid
    画面いっぱい(width: 100%)に広がる

  • row
    領域を左右に15px広げる

  • container
    ブレイクポイントで段階的に横幅が変化

  • container-fluid
    画面サイズに応じて幅に変化

記事の内容
閉じる