CSS Grid Generatorとは|グリッドレイアウトを視覚的に作成
CSS Grid Generator(CSSグリッドジェネレーター)とは、CSSグリッドレイアウトのコードを視覚的な操作で自動生成できるWebツールです。グリッドの行数・列数・間隔を設定し、ドラッグ操作でアイテムを配置するだけで、すぐに使えるHTML/CSSコードが出力されます。
CSSグリッドレイアウトジェネレーターを使えば、grid-template-columnsやgrid-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-columnsとgrid-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-columnとgrid-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-columnとgrid-rowを別々に書くより簡潔です。
実践レイアウト例
2カラムレイアウト(サイドバー+メイン)
.layout {
display: grid;
grid-template-columns: 250px 1fr;
gap: 24px;
}カード型グリッド(レスポンシブ対応)
auto-fitとminmax()を組み合わせると、画面幅に応じて自動的にカード数が変わるレスポンシブレイアウトが実現できます。
.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 Grid | Flexbox |
|---|---|---|
| レイアウト方向 | 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 の代わりに使う
グリッドアイテム間の余白はgap(row-gap/column-gap)で設定するのが基本です。marginと違い、外側に余白が発生せず、最初・最後の要素で個別調整が不要です。
レスポンシブのブレイクポイント戦略
基本的な3段階ブレイクポイントの目安です。
- モバイル(〜599px):1列表示
- タブレット(600〜1023px):2〜3列表示
- PC(1024px〜):3〜4列表示
当サイトのジェネレーターが出力するレスポンシブCSSは、768px以下で自動的に1カラム化し、すべてのアイテムのgrid-areaをautoにリセットします。
よくある質問
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: grid、grid-template-columns、gapの3つのプロパティで基本的なレイアウトが実現できます。子要素の配置にはgrid-area短縮形が最も簡潔で、当サイトのジェネレーターもこの形式でコードを出力します。
grid-template-areasを使えばページ全体の骨格を直感的に設計でき、auto-fitとminmax()の組み合わせでメディアクエリなしのレスポンシブ対応も可能です。
CSS Gridジェネレーターでドラッグ操作からコードを生成し、実際のプロジェクトに活用してみてください。
