Display Gridとテンプレートの列・行
CSS Gridを有効にし、grid-template-columnsとgrid-template-rowsで列と行のトラックを定義します。
「Display Gridとテンプレートの列・行」はCoddyKit上の無料CSS Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCSS Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 CSS Academyコースには全4レッスンが含まれています。
CSS Grid の有効化
コンテナに display: grid を設定すると、CSS Grid が有効になります。その直接の子要素は自動的にグリッドアイテムになり、セルに配置されます。
<div class="layout">
<div style="background:#4f8cff22;border:1px solid #4f8cff;padding:12px;border-radius:4px;">Item A</div>
<div style="background:#ffb84d22;border:1px solid #ffb84d;padding:12px;border-radius:4px;">Item B</div>
<div style="background:#7ee78722;border:1px solid #7ee787;padding:12px;border-radius:4px;">Item C</div>
</div>grid-template-columns
grid-template-columns は、列の数とサイズを定義します。各値によって1つの列トラックが作成されます。
<div class="layout">
<div style="background:#4f8cff22;border:1px solid #4f8cff;padding:12px;border-radius:4px;">200px column</div>
<div style="background:#ffb84d22;border:1px solid #ffb84d;padding:12px;border-radius:4px;">1fr column</div>
<div style="background:#7ee78722;border:1px solid #7ee787;padding:12px;border-radius:4px;">1fr column</div>
</div>grid-template-rows
grid-template-rows は、明示的な行トラックを定義します。定義された行を超えたアイテムによって、暗黙的な行が作成されます。
<div class="layout" style="min-height:220px;">
<div style="grid-column:span 2;background:#4f8cff22;border:1px solid #4f8cff;padding:8px;">Header (row: auto)</div>
<div style="background:#ffb84d22;border:1px solid #ffb84d;padding:8px;">Main left (row: 1fr)</div>
<div style="background:#ffb84d22;border:1px solid #ffb84d;padding:8px;">Main right (row: 1fr)</div>
<div style="grid-column:span 2;background:#7ee78722;border:1px solid #34c759;padding:8px;">Footer (row: auto)</div>
</div>列トラックと行トラック
grid-template-columns または grid-template-rows の各値によって、1つのトラックが作成されます。トラックには任意のサイズ単位を使用できます。
- 固定:
200px、10rem - 柔軟:
1fr - コンテンツ基準:
auto、min-content、max-content
fr単位
fr(fraction単位)は、固定サイズを差し引いた後の利用可能な空間を分配します。1fr 2frでは、1:2の比率で列が作成されます。
<div class="grid">
<div style="background:#4f8cff22;border:1px solid #4f8cff;padding:12px;border-radius:4px;">300px fixed</div>
<div style="background:#ffb84d22;border:1px solid #ffb84d;padding:12px;border-radius:4px;">1fr (1x share)</div>
<div style="background:#7ee78722;border:1px solid #7ee787;padding:12px;border-radius:4px;">2fr (2x share)</div>
</div>トラック内のauto
トラックのautoは、コンテンツに合わせてサイズを決定します。列では最も幅の広いセルに必要な最小幅になり、行では最も高いセルに合う高さになります。
<div class="sidebar-layout">
<div style="background:#4f8cff22;border:1px solid #4f8cff;padding:8px;">Sidebar (auto width)</div>
<div style="background:#ffb84d22;border:1px solid #ffb84d;padding:8px;">Main content (1fr fills the rest)</div>
</div>ページレイアウトの例
ヘッダー、メインコンテンツ、フッターで構成される、一般的な3行のページレイアウトです。
<div class="page">
<header style="background:#4f8cff22;border:1px solid #4f8cff;padding:8px;">Header</header>
<main style="background:#ffb84d22;border:1px solid #ffb84d;padding:8px;">Main (fills available space)</main>
<footer style="background:#7ee78722;border:1px solid #34c759;padding:8px;">Footer</footer>
</div>grid-templateのショートハンド
grid-templateは行と列をまとめて指定します。
<div class="grid" style="display:grid;min-height:180px;">
<div style="background:#4f8cff22;border:1px solid #4f8cff;padding:8px;">Header</div>
<div style="background:#ffb84d22;border:1px solid #ffb84d;padding:8px;">Main</div>
<div style="background:#7ee78722;border:1px solid #34c759;padding:8px;">Footer</div>
</div>DevToolsでGridを検証する
ChromeとFirefoxのDevToolsでは、ページ上にグリッドのトラック線をオーバーレイ表示できます。Elementsパネルでグリッドバッジをクリックすると、列、行、ギャップ、名前付きエリアを視覚化できます。
GridとFlexboxの使い分け
行と列の両方を同時に制御する必要がある場合はGridを使用します。1次元レイアウト(項目を横一列または縦一列に並べるレイアウト)にはFlexboxを使用します。両方を組み合わせるレイアウトも多くあります。
ライン番号
Gridは、1から始まるライン番号を自動的に割り当てます。これらの番号を参照して、項目を手動で配置できます。列ラインは、列数をnとすると1からn+1までになります。
<div style="display:grid;grid-template-columns:repeat(3, 1fr);gap:8px;">
<div class="header" style="grid-column:1 / -1;background:#4f8cff22;border:1px solid #4f8cff;padding:8px;">Header — spans all columns (grid-column: 1 / -1)</div>
<div style="background:#ffb84d22;border:1px solid #ffb84d;padding:8px;">Item 2</div>
<div style="background:#7ee78722;border:1px solid #34c759;padding:8px;">Item 3</div>
</div>確認問題
grid-template-columns: 200px 1fr 2frは何を作成しますか。
まとめ
display: gridはグリッドコンテナを作成します。grid-template-columnsとgrid-template-rowsでトラックを定義します。fr単位は、残りの空間を比例配分します。autoはコンテンツに合わせてサイズを決定します。Gridは2次元レイアウトの制御に適しています。
よくある質問
「Display Gridとテンプレートの列・行」レッスンは無料ですか?
はい。「Display Gridとテンプレートの列・行」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、CSS Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 CSS Academyコースには全4レッスンが含まれています。
「Display Gridとテンプレートの列・行」で何を学びますか?
CSS Gridを有効にし、grid-template-columnsとgrid-template-rowsで列と行のトラックを定義します。 ブラウザで直接実行するハンズオンコードでCSS Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
CSS Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCSS Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「Display Gridとテンプレートの列・行」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCSS Academyレッスンでコードを書いて実行できますか?
はい。すべてのCSS Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Display Gridとテンプレートの列・行
- fr単位とRepeat
- Gapとグリッド配置
- グリッドテンプレート領域