header・nav・main・aside・footerで構成される定番のホーリーグレイルレイアウト。CSS Gridのgrid-template-areasでシンプルに実装できます。
<div class="grid-container"> <div class="item-1">header</div> <div class="item-2">nav</div> <div class="item-3">main</div> <div class="item-4">aside</div> <div class="item-5">footer</div> </div>
.grid-container {
display: grid;
grid-template-columns: repeat(5, 1fr);
grid-template-rows: repeat(5, 1fr);
gap: 8px;
width: 100%;
height: 500px;
}
.item-1 { grid-area: 1 / 1 / 2 / 6; }
.item-2 { grid-area: 2 / 1 / 5 / 2; }
.item-3 { grid-area: 2 / 2 / 5 / 5; }
.item-4 { grid-area: 2 / 5 / 5 / 6; }
.item-5 { grid-area: 5 / 1 / 6 / 6; }
@media (max-width: 768px) {
.grid-container {
grid-template-columns: 1fr;
grid-template-rows: auto;
height: auto;
}
.grid-container > * {
grid-area: auto;
}
}ホーリーグレイル(Holy Grail)レイアウトは、ヘッダーとフッターが画面幅いっぱいに広がり、中央に3カラム(ナビ・メイン・サイドバー)を配置する定番レイアウトです。かつてはfloatやtableで実装されていましたが、CSS Gridを使えば数行で実現できます。grid-template-columnsで比率を指定し、grid-columnとgrid-rowで各エリアの開始・終了位置を決めるだけです。
コーポレートサイト、ブログ、ダッシュボードなど、ヘッダー・ナビ・メイン・サイドバー・フッターを持つページの基本構造として最適です。
列数・行数・Gap・セルの範囲を自由に変更したい場合は、CSS Grid Generatorでドラッグ操作によりオリジナルのグリッドを作成できます。詳しい使い方は使い方ガイドをご覧ください。
ジェネレーターで自分のグリッドを作る →