はじめに
「CSS Gridを使ってもっと自由にレイアウトを組みたい!」
「レスポンシブ対応を楽にしたい!」
「親子グリッドの整合性を保つ方法は?」
こんな悩みを持つ人に向けて、本記事ではCSSのdisplay: grid、subgrid、auto-fitの活用方法を 具体的なコード付き で解説します。
✅ display: grid の基本から応用まで網羅
✅ subgridでネストされたグリッドをスムーズに構築
✅ auto-fitを活用したレスポンシブデザインの最適解
✅ SEO対策に強いコードとパフォーマンス向上テクニック
すぐに実装できる具体的なコードを交えながら、Web開発の現場ですぐに使える知識 をお届けします。
1. CSS Grid の基礎
CSS Gridとは、2次元のレイアウトを効率よく構築できるレイアウトシステムです。
CSS Grid の基本構造
<div class="grid-container">
<div class="grid-item">Item 1</div>
<div class="grid-item">Item 2</div>
<div class="grid-item">Item 3</div>
<div class="grid-item">Item 4</div>
</div>
.grid-container {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 20px;
padding: 20px;
}
.grid-item {
background-color: #f0f0f0;
padding: 20px;
text-align: center;
border: 1px solid #ccc;
}
✅ grid-template-columns: repeat(3, 1fr); → 3カラムの均等配置
✅ grid-gap: 20px; → 各要素の間隔を確保
レスポンシブ対応
@media (max-width: 768px) {
.grid-container {
grid-template-columns: repeat(2, 1fr);
}
}
@media (max-width: 480px) {
.grid-container {
grid-template-columns: 1fr;
}
}
画面幅に応じてカラム数を調整!
モバイルSEOにも強い設計です。
2. 【超便利】auto-fitを活用したレスポンシブグリッド
auto-fit を使うと、コンテンツの数に応じてカラム数を自動調整 できます。
auto-fitの実装
<div class="card-container">
<div class="card">カード1</div>
<div class="card">カード2</div>
<div class="card">カード3</div>
<div class="card">カード4</div>
<div class="card">カード5</div>
</div>
.card-container {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 20px;
padding: 20px;
}
.card {
background-color: #e0f7fa;
padding: 20px;
border: 1px solid #00acc1;
text-align: center;
border-radius: 5px;
}
minmax(200px, 1fr) → 最小200px、最大1frで伸縮
デバイスサイズに応じて自動調整
3. 【最新技術】subgridでネストグリッドを一括管理
通常のgridでは、ネストされたグリッドの整合性を保つのが大変ですが、subgridを使えば親グリッドの構造をそのまま継承 できます。
subgridの実装
<div class="parent-grid">
<div class="grid-item">A</div>
<div class="grid-item">
<div class="child-grid">
<div class="grid-item">Sub A</div>
<div class="grid-item">Sub B</div>
<div class="grid-item">Sub C</div>
</div>
</div>
<div class="grid-item">B</div>
</div>
.parent-grid {
display: grid;
grid-template-columns: 1fr 2fr 1fr;
gap: 20px;
padding: 20px;
}
.child-grid {
display: grid;
grid-template-columns: subgrid;
gap: 10px;
background-color: #fffde7;
padding: 10px;
}
.grid-item {
background-color: #c8e6c9;
padding: 10px;
border: 1px solid #81c784;
text-align: center;
}
✅ grid-template-columns: subgrid; → 親と同じ列配置を保持
✅ 複雑なレイアウトでも一貫性を維持
4. 【SEO対策】CSS Grid のパフォーマンス最適化
検索順位向上には、サイトの読み込み速度とユーザー体験の向上 が必須!
CSS Gridを活用してパフォーマンスを向上させるポイントを紹介します。
① グリッドの描画速度を高速化
✅ CSSのみでレイアウトを構築 → JavaScript不要で描画速度UP
✅ grid-auto-flow: row dense; で効率的な配置を実現
.grid-container {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
grid-auto-flow: row dense;
}
② 不要なCSSを削減
✅ CSSファイルを圧縮(Minify)
✅ 遅延読み込み(Lazy Loading) で画像のロードを最適化
<img src="image.jpg" loading="lazy" alt="サンプル画像">
まとめ
✅ display: grid → 基本のグリッドレイアウトを作成
✅ auto-fit → コンテンツの数に応じたレスポンシブデザイン
✅ subgrid → 親子グリッドの整合性を維持
✅ SEO対策 → 高速化&モバイル最適化で検索順位UP