【CSS】girdで子要素がはみ出る。解決方法

結論

grid-template-columns: repeat(3,minmax(0, 1fr));

と記述すること。

なぜ子要素がはみ出してしまうのか?

minmax を使わずに 1fr を指定すると、

grid-template-columns: repeat(3, minmax(min-content, 1fr));

と同じ挙動になる。

このとき minmax() の性質上、max < min の値が小さい場合には、
max は自動的に min の値まで下限され、結果的に max = min になります。

つまり、幅が150pxの親ブロックに対して
repeat(3, minmax(min-content, 1fr)) を指定すると、
各グリッドには min-content < 50px が適用されます。

ここで、中のテキスト量が多くなると、min の値(最小幅)が max(= 1fr)を超えてしまい、
結果として要素が意図せずはみ出してしまうことになります。

参考サイト

https://zenn.dev/storehero/articles/31012c944ddb90

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール