レイアウト

grid-auto-columns

grid-auto-columns は、grid-template-columns で決めていない列(項目に合わせて自動で足される列)の幅を指定します。

構文

<track-size>+

プレビュー

1234
プリセット
見本
項目
右下の角をドラッグするとサイズを変えられます

コード

.box {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 40px 1fr;
}

コントロール

grid-auto-columns40px 1fr
トラック 1
minmax()
トラック 2
minmax()
1234

解説

自動で足される列

grid-auto-flow: column で項目を列に沿って置くときや、項目の位置を書いた列より右に指定したときは、ブラウザが右に列を足します。grid-auto-columns は、その列の幅を決めます。

初期値の grid-auto-flow: row では、足されるのは行です。列を何も決めていなければ自動で 1 列だけが作られ、その幅に grid-auto-columns が使われますが、grid-template-columns で列を決めていれば、項目をその外に置かない限り効きません(行の高さは grid-auto-rows で決めます)。

値の書き方

列の幅を書きます。値は grid-template-columns と同じで、長さ・%・fr・auto・min-content・max-content・minmax() を使えます。初期値は auto で、中身に合わせた幅になります(箱の幅が余れば伸びます)。

スペースで区切って複数の幅を書くと、足される列に順番に使い、最後まで使ったら最初に戻ります。40px 1fr なら、40px の列と 1fr の列が交互に並びます。

横に並ぶ一覧

grid-auto-flow: column と grid-auto-columns: 200px を組み合わせて overflow-x: auto にすると、項目がいくつあっても同じ幅の列で横に並び、はみ出した分を横にスクロールできる一覧になります。

このページのプレビューは、補助の宣言で display: grid と grid-auto-flow: column にして、列は決めずに 4 つの項目を入れています。項目ごとに列が 1 つ足されるので、4 つの列の幅が変わります。

このページで扱わない書き方

fit-content() は、このページのコントロールではまだ扱っていませんが、コードには書けます。repeat() と none は grid-auto-columns には書けません。

コメント