【CSS】Grid Layoutの単位『auto』と『fr』の違いを理解する

ブログのお知らせ一覧や商品一覧など、カード型で繰り返し並ぶデザインの時に便利なのが『CSS Grid Layout』です。
要素を列と行の格子状に配置することができます。

規則的なレイアウトの場合、レイアウトの単位は『fr』だけを使うことが多いです。
そんな中、コンテンツのボリュームにあわせたレスポンシブなGrid Layoutを作ろうとしたときに『auto』『fr』への理解が足りず手こずってしまいました。
今回は、『auto』と『fr』の違いを、復習を兼ねてまとめてみました。

目次

『auto』と『fr』の動作の違い

特徴 auto fr
サイズの決定基準 コンテンツのサイズ 利用可能なスペースを分割
コンテンツが多い場合の動作 列(行)幅が広がる 列(行)幅は固定

『auto』は要素内のコンテンツ、『fr』は要素外のスペースに対して幅が決定する、というのが大きな特徴です。
図で比較したいと思います。

grid-template-columns: auto auto

flexを使っているときに近い感じですね

grid-template-columns: 1fr 1fr

『fr』同士であれば数値の通りなので、わかりやすいです

grid-template-columns: auto 1fr

私がてこずったのが、『fr』が『利用可能なスペースを分割』という性質であることを理解していなかった点です。
『auto』の方がそれっぽい名前なので、いままで勘違いしていました…。


上記以外にも、Grid Layout独特の性質や値があるので、詳しくは参考にしたページをご覧ください。

・ここを意識したらCSS Gridの扱いが少しだけ上手くなった話
https://code.vool.jp/blog/tips-of-css-grid/
中級者向け。各プロパティの挙動や注意点・コツがわかりやすくまとめてられています

・サクッとグリッドCSSを理解して、クライアントワークに使う
https://www.itti.jp/web-design/quick-css-grid/
初級~中級者向け。Gridへの基本の理解から、理解しやすくするためのジェネレーターの紹介まであり、図解も多くて優しいです

  • URLをコピーしました!
目次