HTML・CSS

CSSのgrid-auto-flowの使い方:指定値・実例・効かない原因とブラウザー互換性

この記事でわかること

grid-auto-flowの役割と主な指定値を解説。項目を列方向または行方向へ増やす配置を比較します。初期値・継承・ブラウザー互換性、効かないときの確認方法も整理します。

grid-auto-flow は、自動配置の方向や詰め方です。この記事では、columnrow を比較して、表示の違いと指定が効く条件を確認します。

grid-auto-flowでできること

活用する場面

項目を列方向または行方向へ増やす配置を比較します。 denseは隙間を埋めるため見た目の順番がHTML順と変わる場合があります。入力項目などでは操作順も確認します。

grid-auto-flowの書き方と主な値

宣言の基本

CSS
.demo {
  grid-auto-flow: column;
}

.demo はHTMLの class="demo" を持つ要素を選びます。プロパティ名の後ろにコロン、値の最後にセミコロンを書きます。

指定できる値の読み方

row、column、denseなど。明示位置がない項目の自動配置を制御します。

初期値と継承

  • 初期値:row
  • 通常の継承:しない。

仕様上の初期値と、ブラウザーの既定スタイルで見えている値は同じとは限りません。たとえば要素に既定のスタイルや別のクラスが適用されていれば、開発者ツールに表示される結果が優先されます。

inherit は親の計算値を使い、initial は仕様の初期値に戻します。unset は継承する項目ならinherit、それ以外ならinitialとして扱います。revertrevert-layer はカスケードの由来やレイヤーを巻き戻す値で、単に直前の行へ戻る指定ではありません。

活用例:grid-auto-flowの変化をブラウザーで比べる

HTMLを用意する

index.htmlhead<link rel="stylesheet" href="./styles.css"> を置き、次のHTMLを body 内へ追加します。親と子の構造も例の一部です。

HTML
<div class="stage"><div class="demo"><div class="item">項目 1</div><div class="item">項目 2</div><div class="item">項目 3</div><div class="item">項目 4</div><div class="item">項目 5</div><div class="item">項目 6</div></div></div>

styles.cssに書くCSS

最後の「今回変更するプロパティ」の行が比較対象です。その前の指定は、違いが見えるようにする土台です。同じ .demo が複数回登場する場合は、通常は後の同じ詳細度の宣言が優先されます。

CSS
* { box-sizing: border-box; }
.stage { max-width: 30rem; padding: 1rem; border: 1px dashed #a8baa9; background: #f6f8f1; }
.demo { padding: 1rem; border: 3px solid #285c40; background: #e6f2ce; color: #233a32; }
.item { padding: 0.75rem; border: 1px solid #66836c; background: #fff; }
.demo { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.5rem; }
.demo { grid-template-columns: 6rem; grid-template-rows: repeat(2, 4rem); grid-auto-flow: column; grid-auto-columns: 6rem; overflow: auto; }

/* 今回変更するプロパティ */
.demo { grid-auto-flow: column; }

別の値へ変更して比較する

最後の grid-auto-flow の値だけを次のように置き換えます。

CSS
.demo { grid-auto-flow: row; }

項目を列方向または行方向へ増やす配置を比較します。変更後はファイルを保存してブラウザーを再読み込みします。

値を切り替えられるサンプルを開く

grid-auto-flowが効かないときの確認

このプロパティで間違えやすい点

denseは隙間を埋めるため見た目の順番がHTML順と変わる場合があります。入力項目などでは操作順も確認します。

Gridの親でトラックを定義する指定か、子の配置を決める指定かを確認します。開発者ツールのGrid表示で、明示トラックと暗黙トラックを見分けると原因を追いやすくなります。

開発者ツールで順番に調べる

  • Networkで styles.css が正常に取得されているかを確認する。
  • Elementsで対象の class とCSSのセレクターが一致しているかを確認する。
  • Stylesで宣言が無効扱いになっていないか、別の宣言に上書きされていないかを見る。
  • Computedで最終的な値を確認し、親の表示方式や寸法も調べる。
  • 320px程度の画面幅、文字の拡大、キーボード操作でも内容を利用できるか確認する。

grid-auto-flowのブラウザー互換性

プロパティ本体の対応

2026年9月21日確認のMDN Browser Compatibility Dataの記録です。開始版は通常の接頭辞なしの実装を優先しています。プロパティが使えることと、すべての値・構文が使えることは別です。

  • Chrome:57以降
  • Edge:16以降
  • Firefox:52以降
  • Safari:10.1以降
  • Android版Chrome:57以降
  • iOS版Safari:10.3以降

「部分対応」「補足条件あり」の場合は下の出典の注記も確認します。開発版・予定版の記録は、その機能が現在の安定版で使えるという意味ではありません。

値・利用場面による追加の対応差

  • column:Chrome 57以降 / Edge 79以降 / Firefox 52以降 / Safari 10.1以降。
  • row:Chrome 57以降 / Edge 79以降 / Firefox 52以降 / Safari 10.1以降。

これらは互換性データ上の機能名です。対応する値・文脈の詳細や、ここに挙げていない新しい機能はMDNの個別ページを参照してください。

練習と関連プロパティ

値を1つずつ変えて理解する

まず columnrow の違いを言葉で説明します。次に文章量や親の幅だけを変え、結果がどう変わるかを比較してください。複数のプロパティを一度に書き換えるより、原因と結果を追いやすくなります。

関連する記事

参考資料

互換性はMDN Browser Compatibility Data 8.1.2、初期値と継承はmdn-data 2.36.0(いずれもCC0-1.0)を参照しています。ブラウザー更新時には対象の値まで含めて再確認してください。

y.
WRITTEN BY

y_ymo10

SEの部屋で、HTML・CSSからJavaScript・React・Next.jsまで、Web制作の開発ノートを公開しています。

ほかの開発ノートを読む →