CSS Gridとは?初心者でも分かりやすいレイアウトの基本

CSS Gridとは?初心者でも分かりやすいレイアウトの基本

2025.11.01

CSS Gridとは?

CSS Grid(グリッドレイアウト)は、要素を「行(row)」と「列(column)」のマス目で管理し、ウェブページのレイアウトを柔軟にコントロールできるCSSの仕組みです。

従来の float や inline-block に比べて、シンプルなコードで複雑なレイアウトを実現できます。

Flexboxとの違い

CSS Gridとよく比較されるのが Flexbox です。

両者の特徴は次の通りです。

Flexboxの特徴

  • 横方向 or 縦方向の 1方向レイアウト が得意
  • ナビゲーション、ボタン並びなどに使用
  • 要素の整列に強い

CSS Gridの特徴

  • 縦 × 横(2方向)レイアウト を同時に管理
  • カード一覧や複雑なページ構造に最適
  • Webページ全体の骨組み作りに向く

使い分けの目安:

  • 1方向だけ並べる → Flexbox
  • マス目のレイアウト → CSS Grid

CSS Gridの基本構文

まずは最もシンプルな例を見てみましょう。

HTML

<div class="grid">
  <div>Box1</div>
  <div>Box2</div>
  <div>Box3</div>
</div>

CSS

.grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr; /* 3列 */
  gap: 20px; /* 要素間の余白 */
}

よく使うCSS Gridプロパティ

display: grid

グリッドレイアウトを有効化します。

.grid {
  display: grid;
}

grid-template-columns

列の幅・数を指定します。

grid-template-columns: 1fr 1fr 1fr;

固定幅+比率も可能です。

grid-template-columns: 200px 1fr;

grid-template-rows

行の高さを指定します。

grid-template-rows: auto auto;

gap

要素同士の余白。

gap: 20px;

grid-column / grid-row

特定要素の位置・範囲を指定します。

.item {
  grid-column: 1 / 3; /* 1列目〜2列目 */
}

レスポンシブ対応に強い理由

CSS Gridはレスポンシブレイアウトを非常に簡単にします。

.grid {
  display: grid;
  gap: 20px;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}
  • minmax(250px, 1fr) → 最小250px、最大は余白で伸びる
  • auto-fit → 幅に応じて列数を自動調整

結果:

  • 広い画面では 4列
  • 少し狭いと 3列
  • タブレットで 2列
  • スマホで 1列

自由自在に自動変化 します。

実務で使う例:カードレイアウト

HTML

<section class="card-list">
  <div class="card">カード1</div>
  <div class="card">カード2</div>
  <div class="card">カード3</div>
  <div class="card">カード4</div>
</section>

CSS

.card-list {
  display: grid;
  gap: 24px;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}

.card {
  padding: 16px;
  border: 1px solid #ddd;
  background-color: #fff;
}

制作現場での活用ポイント

CSS Gridは制作現場で以下の場面で特に役立ちます。

  • サービス紹介の3カラム
  • 料金表(プラン比較)
  • ブログ・実績一覧のカード型レイアウト
  • 地図+テキストの2カラムレイアウト
  • フッターの複雑な構造
  • ギャラリーの画像タイル配置

崩れにくく、コードもシンプルで管理しやすいため、
モダンWeb制作では必須スキルになりつつあります。

まとめ

CSS Gridは、Web制作において非常に強力なレイアウト技術です。

  • 縦と横のレイアウトを完全に管理できる
  • レスポンシブ対応が簡単
  • 複雑レイアウトも短いコードで実現可能

まずは

  • display: grid;
  • grid-template-columns
  • gap

あたりから実際に使ってみるのがおすすめです。

タグ:

#CSS #Grid #レイアウト