CSS Gridジェネレーター【無料】|視覚的に組んでHTML/CSSを自動生成


CSS Grid Generatorとは|グリッドレイアウトを視覚的に作成

CSS Grid Generator(CSSグリッドジェネレーター)とは、CSSグリッドレイアウトのコードを視覚的な操作で自動生成できるWebツールです。グリッドの行数・列数・間隔を設定し、ドラッグ操作でアイテムを配置するだけで、すぐに使えるHTML/CSSコードが出力されます。

CSSグリッドレイアウトジェネレーターを使えば、grid-template-columnsgrid-areaなどのプロパティを手書きする必要がなく、CSS Gridの初心者でも直感的にレイアウトを設計できます。当サイトのGrid Generatorは完全無料で、レスポンシブ対応のCSSコードも同時に生成します。


CSS Gridとは?初心者にもわかる基本概念

CSS Grid(グリッドレイアウト)は、Webページのレイアウトを「行と列」で構成する、CSSの2次元レイアウトシステムです。

従来のfloatやtableベースのレイアウトでは、要素の横並びやカラム配置に複雑なコードが必要でした。CSS Gridを使えば、行と列を定義するだけで、ヘッダー・サイドバー・メインコンテンツ・フッターといったWebサイトの骨格を直感的に組み立てることができます。

Flexbox(1次元レイアウト)とは異なり、CSS Gridは行方向と列方向を同時にコントロールできるため、ページ全体の骨格設計に最適です。現在はChrome・Firefox・Safari・Edgeすべてのブラウザが対応しており、グローバルカバー率は97%以上です。


CSS Gridの基本的な書き方

display: grid の指定

グリッドレイアウトを有効化するには、親要素にdisplay: gridを指定します。

.grid-container {
  display: grid;
}

grid-template-columns / rows で列と行を定義

列数と行数はgrid-template-columnsgrid-template-rowsで定義します。fr単位を使えば、利用可能なスペースを比率で分割できます。

.grid-container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(2, 1fr);
}

値の指定方法は複数あります。

指定方法説明
px固定幅200px 300px
fr利用可能スペースの比率分割1fr 2fr 1fr
%コンテナ幅の割合30% 70%
repeat()繰り返し指定repeat(3, 1fr)
minmax()最小・最大値を設定minmax(200px, 1fr)

gap で行間・列間を設定

gapプロパティで行間と列間の余白を一括設定できます。従来のmarginとは異なり、要素の外側に余白が出ないため、レイアウト管理がシンプルになります。

.grid-container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

grid-area で子要素の配置範囲を指定

子要素の配置範囲はgrid-area短縮形で一括指定できます。書式はgrid-area: 行開始 / 列開始 / 行終了 / 列終了です。当サイトのCSS Gridジェネレーターもこの形式でコードを出力します。

.item-1 { grid-area: 1 / 1 / 3 / 2; }
.item-2 { grid-area: 1 / 2 / 2 / 4; }
.item-3 { grid-area: 2 / 2 / 3 / 3; }

また、grid-columngrid-rowで個別に指定する方法もあります。

.item-1 {
  grid-column: 1 / 2;
  grid-row: 1 / 3;
}

CSS Gridジェネレーターの使い方

当サイトのCSS Gridジェネレーターを使えば、ドラッグ操作でグリッドレイアウトを視覚的に作成し、HTML/CSSコードを自動生成できます。

ステップ1:グリッドの基本設定

画面上部のコントロールパネルで以下を設定します。

  • Columns / Rows:列数と行数を指定(デフォルト5×5)
  • Gap:グリッド間のスペースをpxで指定
  • Width / Height:コンテナの幅と高さを設定。px・%・vw・vh・em・remの6種類の単位から選択可能

ステップ2:ドラッグでアイテムを配置

グリッド上でマウスをドラッグして、アイテムの配置範囲を選択します。複数セルにまたがる選択も可能で、選択範囲がそのままgrid-areaの値として反映されます。配置したアイテムはダブルクリックで個別に削除できます。

ステップ3:コードをコピーして使用

アイテムを配置すると、画面下部にHTML/CSSコードがリアルタイムで生成されます。コピーボタンでクリップボードにコピーし、そのままプロジェクトに貼り付けられます。

生成されるCSSには、コンテナ設定・各アイテムのgrid-area配置・レスポンシブ対応(768px以下で1カラム)の3つが含まれます。

生成されるコードの例

3列×2行のグリッドに3つのアイテムを配置した場合、以下のようなコードが生成されます。

 <div class="grid-container">
  <div class="item-1">1</div>
  <div class="item-2">2</div>
  <div class="item-3">3</div>
</div>
.grid-container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(2, 1fr);
  gap: 8px;
  width: 100%;
  height: 500px;
}

.item-1 { grid-area: 1 / 1 / 3 / 2; }
.item-2 { grid-area: 1 / 2 / 2 / 4; }
.item-3 { grid-area: 2 / 2 / 3 / 3; }

@media (max-width: 768px) {
  .grid-container {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    height: auto;
  }
  .grid-container > * {
    grid-area: auto;
  }
}

CSS Grid 親要素プロパティ一覧

プロパティ役割使用例
displayグリッド有効化display: grid;
grid-template-columns列の定義repeat(3, 1fr)
grid-template-rows行の定義auto 200px auto
grid-template-areas名前付きエリア定義"header header"
gap行間・列間の余白16px 24px
justify-itemsセル内の水平配置center
align-itemsセル内の垂直配置center
justify-contentグリッド全体の水平配置center
align-contentグリッド全体の垂直配置center

CSS Grid 子要素プロパティ一覧

プロパティ役割使用例
grid-area配置範囲の一括指定1 / 1 / 3 / 2
grid-column列方向の配置範囲1 / 3
grid-row行方向の配置範囲1 / 2
justify-self個別の水平配置center
align-self個別の垂直配置end

当サイトのジェネレーターはgrid-area短縮形を使用してコードを出力します。grid-area: 行開始 / 列開始 / 行終了 / 列終了の順序で指定するため、grid-columngrid-rowを別々に書くより簡潔です。


実践レイアウト例

2カラムレイアウト(サイドバー+メイン)

.layout {
  display: grid;
  grid-template-columns: 250px 1fr;
  gap: 24px;
}

カード型グリッド(レスポンシブ対応)

auto-fitminmax()を組み合わせると、画面幅に応じて自動的にカード数が変わるレスポンシブレイアウトが実現できます。

.cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
}

聖杯レイアウト(grid-template-areas)

grid-template-areasを使えば、ページ全体の骨格を名前で管理できます。

.page {
  display: grid;
  grid-template-areas:
    "header  header"
    "sidebar main"
    "footer  footer";
  grid-template-columns: 250px 1fr;
  grid-template-rows: auto 1fr auto;
  min-height: 100vh;
  gap: 16px;
}

.header  { grid-area: header; }
.sidebar { grid-area: sidebar; }
.main    { grid-area: main; }
.footer  { grid-area: footer; }

モバイル向けにメディアクエリで1カラムに切り替えます。

@media (max-width: 768px) {
  .page {
    grid-template-areas:
      "header"
      "main"
      "sidebar"
      "footer";
    grid-template-columns: 1fr;
  }
}

CSS GridとFlexboxの使い分け

項目CSS GridFlexbox
レイアウト方向2次元(行と列)1次元(横or縦)
配置の考え方レイアウト全体から設計要素の並び順から設計
向いている場面ページ骨格・カード一覧ナビゲーション・ボタン群
コンテンツ量の影響左右されにくい伸縮する

GridとFlexboxは競合する技術ではなく、併用することで最も効果を発揮します。ページの骨格はGridで組み、ナビゲーションやボタン群など1次元の要素はFlexboxで整列させるのが一般的です。


実務で使えるCSS Grid Tips

auto-fit と minmax() でレスポンシブカード

repeat(auto-fit, minmax(200px, 1fr))を使えば、メディアクエリなしで画面幅に応じたカード数の自動調整が可能です。

はみ出し対策には minmax(0, 1fr)

1frで指定した列のコンテンツが長い場合、要素がはみ出すことがあります。minmax(0, 1fr)に変更すると、最小幅が0になりオーバーフローを防げます。

gap を margin の代わりに使う

グリッドアイテム間の余白はgaprow-gap/column-gap)で設定するのが基本です。marginと違い、外側に余白が発生せず、最初・最後の要素で個別調整が不要です。

レスポンシブのブレイクポイント戦略

基本的な3段階ブレイクポイントの目安です。

  • モバイル(〜599px):1列表示
  • タブレット(600〜1023px):2〜3列表示
  • PC(1024px〜):3〜4列表示

当サイトのジェネレーターが出力するレスポンシブCSSは、768px以下で自動的に1カラム化し、すべてのアイテムのgrid-areaautoにリセットします。


よくある質問

Q. CSS GridとFlexboxはどう使い分ける?

Gridは2次元レイアウト(行と列の両方を制御)に向いており、ページの骨格やカード一覧に最適です。Flexboxは1次元の整列(横並びまたは縦並び)に向いており、ナビゲーションやボタン群に適しています。両方を組み合わせて使うのが一般的です。

Q. auto-fitとauto-fillの違いは?

auto-fitは空のトラックを潰して既存の要素を広げます。auto-fillは空のトラックをそのまま保持します。要素を画面幅いっぱいに広げたい場合はauto-fitを使いましょう。

Q. gapが効かないのはなぜ?

親要素にdisplay: gridが指定されていない、子要素が別のレイアウトコンテキストに属している、またはブラウザの互換モードが原因の可能性があります。DevToolsで親要素のdisplayプロパティを確認してください。

Q. カードの横幅が崩れるときの対処法は?

minmaxの最小幅が大きすぎる可能性があります。minmax(280px, 1fr)minmax(0, 1fr)に変更してみてください。また、画像にはmax-width: 100%を指定してコンテナからはみ出さないようにしましょう。

Q. grid-areaの数値の順序がわからない

grid-area行開始 / 列開始 / 行終了 / 列終了の順序です。例えばgrid-area: 1 / 2 / 3 / 4は「1行目から3行目まで、2列目から4列目まで」を意味します。当サイトのジェネレーターでドラッグ配置すれば、この値が自動で計算されます。

Q. grid-template-areasを使う場面は?

ページ全体のレイアウト(ヘッダー・サイドバー・メイン・フッター)など、エリアを名前で管理したい場面に適しています。カード一覧のように同じサイズの要素を並べる場合はrepeat()auto-fitの方がシンプルです。

Q. CSS Gridの対応ブラウザは?

2026年現在、Chrome・Firefox・Safari・Edgeがすべて対応しています。IE11はサポート終了済みです。グローバルカバー率は97%以上で、実務で安心して使用できます。


まとめ

CSS Gridはdisplay: gridgrid-template-columnsgapの3つのプロパティで基本的なレイアウトが実現できます。子要素の配置にはgrid-area短縮形が最も簡潔で、当サイトのジェネレーターもこの形式でコードを出力します。

grid-template-areasを使えばページ全体の骨格を直感的に設計でき、auto-fitminmax()の組み合わせでメディアクエリなしのレスポンシブ対応も可能です。

CSS Gridジェネレーターでドラッグ操作からコードを生成し、実際のプロジェクトに活用してみてください。