「初心者でもわかるCSSグリッド!基本から応用までを解説」

eyecatch92 WEB制作

こんにちは、SouDogです。

Web制作において、柔軟で効率的なレイアウトを作るにはCSSグリッドが欠かせません。CSSグリッドは、複雑なレイアウトをシンプルなコードで実現できる強力な機能です。

この記事では、初心者向けにCSSグリッドの基本から応用までをわかりやすく解説します。


1. CSSグリッドとは?

CSSグリッドは、要素を行と列で配置するためのレイアウトシステムです。他のレイアウト方法(フロートやFlexbox)と比べて以下のような特徴があります:

  • 2次元レイアウトに対応(行と列を同時に操作可能)
  • 視覚的に直感的でコードが簡潔
  • 要素の自動配置が可能

2. 基本的なCSSグリッドのプロパティ

2.1 親要素(グリッドコンテナ)のプロパティ

グリッドレイアウトを作成するには、まず親要素にdisplay: gridを設定します。

.container {
    display: grid;
    grid-template-columns: repeat(3, 1fr); /* 3列のグリッド */
    gap: 10px; /* セル間の間隔 */
}

主要プロパティ

  • grid-template-columns: 列の幅を指定
    例:
grid-template-columns: 1fr 2fr 1fr;

grid-template-rows: 行の高さを指定
例:

grid-template-rows: 100px auto 50px;

gap: セル間の間隔を指定(row-gapcolumn-gapのショートハンド)



2.2 子要素(グリッドアイテム)のプロパティ

子要素はグリッドコンテナ内で自由に配置できます。

.item {
    grid-column: 1 / 3; /* 1列目から3列目までを占有 */
    grid-row: 2 / 4; /* 2行目から4行目までを占有 */
}

主要プロパティ

  • grid-column: 列の開始と終了を指定
  • grid-row: 行の開始と終了を指定
  • justify-self: 水平方向の位置を指定(start, end, center, stretch)
  • align-self: 垂直方向の位置を指定(start, end, center, stretch)

3. 実践:基本的なグリッドレイアウトの作成

以下は、3列×3行のグリッドを作成する基本的な例です。

<div class="container">
    <div class="item">1</div>
    <div class="item">2</div>
    <div class="item">3</div>
    <div class="item">4</div>
    <div class="item">5</div>
    <div class="item">6</div>
    <div class="item">7</div>
    <div class="item">8</div>
    <div class="item">9</div>
</div>
.container {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: repeat(3, 100px);
    gap: 10px;
}

.item {
    background-color: #007BFF;
    color: #fff;
    text-align: center;
    line-height: 100px;
}

4. 応用:レスポンシブ対応のグリッドレイアウト

CSSグリッドはレスポンシブデザインにも最適です。auto-fitminmaxを使うことで、画面幅に応じたレイアウトを作成できます。

.container {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 15px;
}
  • auto-fit: 要素を可能な限り詰め込む
  • minmax: 要素の最小・最大サイズを指定

5. よくあるグリッドレイアウトの例

5.1 ヘッダー・メイン・サイドバー・フッター

以下は、典型的なレイアウト例です。

.container {
    display: grid;
    grid-template-columns: 200px 1fr 200px; /* 左右にサイドバー */
    grid-template-rows: 100px auto 50px;   /* 上にヘッダー、下にフッター */
    gap: 10px;
}

.header {
    grid-column: 1 / 4; /* 全列を占有 */
}

.sidebar-left {
    grid-column: 1 / 2;
}

.main {
    grid-column: 2 / 3;
}

.sidebar-right {
    grid-column: 3 / 4;
}

.footer {
    grid-column: 1 / 4; /* 全列を占有 */
}

6. 実務でCSSグリッドを使うメリット

  1. コードが簡潔で直感的: 2次元レイアウトをシンプルに記述できる。
  2. 柔軟性が高い: アイテムの配置を簡単に変更可能。
  3. レスポンシブデザインに最適: レイアウトが画面サイズに応じて自動調整される。
  4. モダンブラウザで幅広くサポート: 最新のブラウザでほぼ完全に対応。

7. CSSグリッド学習のおすすめリソース


まとめ:CSSグリッドで効率的なレイアウトを作ろう!

CSSグリッドを使えば、複雑なレイアウトも簡単に実現できます。

  • 基本プロパティ: grid-template-columns, grid-template-rows, gap
  • 応用テクニック: auto-fit, minmax
  • レスポンシブデザイン対応も簡単!

ぜひ参考にしてみてください!!

コメント