CSS Grid実践
12カラムグリッドシステム
12カラムグリッドは、ウェブ開発の古典的なレイアウトシステムです。CSS Gridで実装する方法を紹介します:
サンプル
HTML
<style>
.grid-12 {
display: grid;
grid-template-columns: repeat(12, 1fr);
gap: 20px;
}
.g-col-3 { grid-column: span 3; }
.g-col-4 { grid-column: span 4; }
.g-col-6 { grid-column: span 6; }
.g-col-8 { grid-column: span 8; }
.g-col-12 { grid-column: span 12; }
.grid-item {
background: #e8f4f8;
border: 1px solid #3498db;
padding: 16px;
text-align: center;
border-radius: 4px;
}
</style>
<div class="grid-12">
<div class="grid-item g-col-3">3カラム</div>
<div class="grid-item g-col-3">3カラム</div>
<div class="grid-item g-col-3">3カラム</div>
<div class="grid-item g-col-3">3カラム</div>
</div>
一般的なレイアウトパターン
聖杯レイアウト
最も一般的なページレイアウトパターン:
サンプル
HTML
<style>
.holy-grail {
display: grid;
grid-template-areas:
"header header header"
"sidebar main aside"
"footer footer footer";
grid-template-columns: 200px 1fr 200px;
grid-template-rows: 60px 1fr 40px;
min-height: 100vh;
gap: 10px;
}
.hg-header { grid-area: header; background: #2c3e50; color: white; }
.hg-sidebar { grid-area: sidebar; background: #34495e; color: white; }
.hg-main { grid-area: main; background: #ecf0f1; }
.hg-aside { grid-area: aside; background: #34495e; color: white; }
.hg-footer { grid-area: footer; background: #2c3e50; color: white; }
.holy-grail > * { padding: 20px; display: flex; align-items: center; justify-content: center; }
</style>
<div class="holy-grail">
<header class="hg-header">ヘッダー</header>
<aside class="hg-sidebar">サイドバー</aside>
<main class="hg-main">メインコンテンツ</main>
<aside class="hg-aside">アサイド</aside>
<footer class="hg-footer">フッター</footer>
</div>
レスポンシブカードグリッド
サンプル
HTML
<style>
.card-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
gap: 20px;
padding: 20px;
}
.card {
background: white;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
padding: 20px;
}
</style>
<div class="card-grid">
<div class="card">カード1</div>
<div class="card">カード2</div>
<div class="card">カード3</div>
<div class="card">カード4</div>
</div>
❓ よくある質問
Q なぜグリッドシステムは12カラムを使うのですか?
A 12は2、3、4、6で割り切れる——最大の柔軟性を提供します。1/2、1/3、1/4、1/6、2/3、3/4の比率を作成できます。Bootstrapや他のフレームワークは12カラムグリッドを使用しており、業界標準です。
Q 手書きグリッドとBootstrapグリッドの違いは?
A 手書きは原理を理解するのに役立ち、Bootstrapはパッケージ化された実装です。実際のプロジェクトでは効率のためにBootstrapを使用しますが、フレームワークが特定のニーズを満たさない場合に原理を理解していると役立ちます。
Q FlexグリッドとGridグリッド——どちらが優れていますか?
A それぞれに強みがあります。Flexは1次元の配置に適していますが、行をまたいで揃えることはできません。Gridはより強力な2次元機能を持っています。単純な行の分配にはFlexで十分で、グリッド線の配置にはGridを使用します。
📖 まとめ
- グリッドシステムは時を経て証明された古典的なレイアウトソリューションです
- Flexboxで12カラムグリッドを実装することは複雑ではありません——重要なのはパーセント幅とflex-wrapを理解することです
- 12カラムはレスポンシブブレークポイントと柔軟な組み合わせを提供します
- 多くのプロジェクトがBootstrapやTailwindのグリッドを使用していますが、自分で一度実装すると、基本原理を本当に学べます
📝 演習
- 完全な12カラムグリッドシステムを実装し、異なるカラムの組み合わせ(3-3-3-3、4-4-4、2-8-2など)を表示するHTMLページを作成してください。
- レスポンシブグリッドで、モバイルでは単一カラム、タブレットでは2カラム、デスクトップでは4カラムを表示してください。
col-offset-3を使用して、コンテンツブロックをページの中央に配置してください。- Gridで12カラムグリッドを再実装し、コードの違いを比較してください。



