CSS 比較関数 min()・max()・clamp() の使い方
CSS の比較関数である min()・max()・clamp() を使うと、これまで複数行で記述していたレイアウト調整を、よりシンプルに書けるようになります。
min()
min() は、カンマで区切られた値を比較し、その「最小値」を返します。
主に「要素の最大サイズを決めたい」場合に便利です。
これまでの書き方(例)
|
1 2 3 4 |
.min_box { width: 100%; max-width: 500px; } |
min() を使う書き方
|
1 2 3 |
.min_box { width: min(100%, 500px); } |
関数名は min(最小)ですが、指定した値のうち「小さい方」が選ばれるため、結果として 最大サイズの制限(max-width 的な挙動)を実現できます。
DEMO
See the Pen [CSS] min() by mkl may (@mkl-may) on CodePen.
min(100%, 500px)
- ビューポート幅 1920px
- 比較:100%(=1920px), 500px
- 結果:最小値の 500px が適用される
- ビューポート幅 375px
- 比較:100%(=375px), 500px
- 結果:最小値の 375px が適用される
max()
max() は、カンマで区切られた値を比較し、その「最大値」を返します。
主に「要素の最小サイズを決めたい」場合に便利です。
これまでの書き方(例)
|
1 2 3 4 |
.max_box { width: 50%; min-width: 500px; } |
max() を使う書き方
|
1 2 3 |
.max_box { width: max(100%, 500px); } |
関数名は max(最大)ですが、指定した値のうち「大きい方」が選ばれるため、結果として 最小サイズの制限(min-width 的な挙動)を実現できます。
DEMO
See the Pen [CSS] max() by mkl may (@mkl-may) on CodePen.
max(100%, 500px)
- ビューポート幅 1920px
- 比較:100%(=1920px), 500px
- 結果:最大値の 100% が適用される
- ビューポート幅 375px
- 比較:100%(=375px), 500px
- 結果:最大値の 500px が適用される
clamp()
clamp() は clamp(最小値, 推奨値, 最大値) の3つを比較して、条件に合う値を返します。
- 推奨値が最小値より小さい → 最小値が適用
- 推奨値が最大値より大きい → 最大値が適用
- その間なら → 推奨値が適用
clamp() を使う書き方
|
1 2 3 |
.clamp_box { width: clamp(300px, 50vw, 800px); } |
DEMO
See the Pen [CSS] clamp() by mkl may (@mkl-may) on CodePen.
clamp(300px, 50vw, 800px)
- ビューポート幅 1920px
- 推奨値:50vw = 960px
- 比較:300px, 50vw(=960px), 800px
- 結果:推奨値が最大値より大きいため、最大値の800px が適用される
- ビューポート幅 375px
- 推奨値:50vw = 187.5px
- 比較:300px, 50vw(=187.5px), 800px
- 結果:推奨値が最小値より小さいため、最小値の300px が適用される
![MARKLEAPS[マークリープス]](https://markleaps.com/blog/wp-content/themes/mkl/images/00_logo.png)