2024-08-14
CSS Grid
grid
はその名の通り、要素をグリッド状に並べるためのプロパティです。これが非常に便利で、主要なレイアウトは grid を使えばたいてい実現できてしまいます。
仕様が複雑なのが難点ですが、頭に入れておくプロパティは2つだけです。
grid-template-columns: 1fr 200px;
grid-gap: 20px;
簡単ですね。可変レイアウトの場合は以下のように書きます。
grid-template-columns: repeat(3, 1fr);
grid-template-columns: repeat(3, minmax(100px, 1fr));
grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
minmax
は長さを返す関数です。1fr
の最小値を設定します。
repeat
は要素を繰り返します。繰返し数に auto-fill
または
auto-fit
を指定することで可変レイアウトにできます。
この違いは難しいのですが、グリッドに要素があるときに、auto-fit
は要素を引き伸ばそうとし、auto-fill
は次の要素(または隙間)を挿入します。グリッドらしい挙動をするのは
auto-fill
だと思います。
全容は MDN
を読んでください。auto
, fit-content
, min/max-content
, mansory
,
subgrid
などのプロパティがあります。grid-template-areas
も面白そうですが、今のところ使わなさそうなのでおいておきます。