0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

BootStrapの使用方法② グリッドシステムについて

Posted at

本記事ではBootStrapのグリッドシステムについてまとめていきます。

グリッドシステム
…レイアウトを格子状にして配置するデザイン方法。コンテナ・行・列を使用して要素を整列させます。
 画面サイズが異なるデバイスでも柔軟に表示が可能です。
 列数は12を基準とし、列の幅の数字は一列で12となるように設定する。

この最後の行の説明については、コーディングしながら確認していきましょう。

bodyタグ内に下記のソースコードを差し込みます。

<div class="container">
      <div class="row">
        <div class="col">test1</div>
        <div class="col">test2</div>
        <div class="col">test3</div>
      </div>
    </div>

ソースコード全体としては下記のようになります。

gridsystem.html
<!DOCTYPE html>
<html lang="ja">

  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>GridSystemについて</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"
      integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous">
      <style>
        .col {
          background-color: coral;
          border: black 1px solid;
        }
      </style>
  </head>

  <body>
    <div class="container">
      <div class="row">
        <div class="col">test1</div>
        <div class="col">test2</div>
        <div class="col">test3</div>
      </div>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"
      integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz"
      crossorigin="anonymous"></script>
  </body>

</html>

画面はこのようになります。
コンテナ内が三等分されているのが分かります。
「col」をクラスに設定することで、親要素を3等分するようにdivを配置することができます。
image.png


最初、「列数は12を基準とし、列の幅の数字は一列で12となるように設定する。」と述べましたが
改めてこちらについて説明します。
bodyタグの中身をこちらに入れ替えて画面を確認します。

    <div class="container">
      <div class="row">
        <div class="col-1">1</div>
        <div class="col-1"></div>
        <div class="col-1"></div>
        <div class="col-1"></div>
        <div class="col-1"></div>
        <div class="col-1"></div>
        <div class="col-1"></div>
        <div class="col-1"></div>
        <div class="col-1"></div>
        <div class="col-1"></div>
        <div class="col-1"></div>
        <div class="col-1"></div>
      </div>
      <div class="row">
        <div class="col-2">2</div>
        <div class="col-2"></div>
        <div class="col-2"></div>
        <div class="col-2"></div>
        <div class="col-2"></div>
        <div class="col-2"></div>
      </div>
      <div class="row">
        <div class="col-3">3</div>
        <div class="col-3"></div>
        <div class="col-3"></div>
        <div class="col-3"></div>
      </div>
      <div class="row">
        <div class="col-4">4</div>
        <div class="col-4"></div>
        <div class="col-4"></div>
      </div>
      <div class="row">
        <div class="col-6">6</div>
        <div class="col-6"></div>
      </div>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"
      integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz"
      crossorigin="anonymous"></script>
  </body>

画面は下記のように表示されます。
このように、親要素のコンテナ(container)を均等に分けて配置することができます。
image.png

ゆえにクラス「col-」の数字部分が合計12になるように設定する必要があります。

グリッドオプション
…異なるデバイスや画面サイズに対応するための設定のこと。

ブレークポイント
Extra small (xs): <576px
Small (sm): ≥576px
Medium (md): ≥768px
Large (lg): ≥992px
Extra large (xl): ≥1200px
Extra extra large (xxl): ≥1400px

上記のブレークポイントを使用することで様々なデバイス(PC、スマホ、タブレット)に対して適切なレイアウトを提供できます。

今回の例では「Medium」「Large」の画面サイズでレイアウトを設定してみます。

gridsystem.html
    <div class="container">
      <div class="row">
        <div class="col-lg-1 col-md-3">test</div>
        <div class="col-lg-1 col-md-3">test</div>
        <div class="col-lg-1 col-md-3">test</div>
        <div class="col-lg-1 col-md-3">test</div>
        <div class="col-lg-1 col-md-3">test</div>
        <div class="col-lg-1 col-md-3">test</div>
        <div class="col-lg-1 col-md-3">test</div>
        <div class="col-lg-1 col-md-3">test</div>
        <div class="col-lg-1 col-md-3">test</div>
        <div class="col-lg-1 col-md-3">test</div>
        <div class="col-lg-1 col-md-3">test</div>
        <div class="col-lg-1 col-md-3">test</div>
      </div>
    </div>

画面サイズが992px以下(lg)である場合は、下記のように1つの要素が1行で配置されるようになり、
image.png

画面サイズが768px以下(md)である場合は、下記のように3行で配置されるようになります。
image.png

このように画面サイズによってレイアウトの変更ができるため、様々なデバイスでの画面表示が容易になります。


ネスト
…BootStrapのグリッドシステムにおいて、要素のレイアウトを設定する際に
ネスト(入れ子型)の構造にすることができます。

分かりづらいかもしれませんが、
まずcol-lg-8クラスの要素と、col-lg-4クラスの要素を作成し
col-lg-8クラスの要素内に row、col-lg-3、col-lg-9の要素を作成します。
(※この部分が入れ子構造になっています。)

    <div class="container">
      <div class="row">
        <div class="col-lg-8">test
          <div class="row">
            <div class="col-lg-3">test-sub</div>
            <div class="col-lg-9">test-sub</div>
          </div>
        </div>
        <div class="col-lg-4">test
        </div>
      </div>
    </div>

画面で確認するとこのようになります。
12分の8、12分の4でまず分けられており、
12分の8部分の要素がネストされているのでその要素が
12分の3と12分の9に分けられているといった構造になります。

image.png

このようにネストを用いることでイレギュラーなレイアウトにも対応することができます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?