はじめに
clamp()は、「最小値」「推奨値」「最大値」の3つを設定するだけで、画面幅に合わせて要素のサイズを最適化してくれるCSS関数です。
文字サイズだけでなく、余白(paddingやmargin)にも使えるため、面倒なメディアクエリ(@media)の記述を劇的に減らすことができます。
使い方
基本の書き方は以下の通りです。
font-size: clamp(最小値, 推奨値, 最大値);
- 最小値: これ以上小さくならないサイズ
- 推奨値: 画面幅に応じて変動するサイズ(
vwなどを使用) - 最大値: これ以上大きくならないサイズ
サンプルコード
1. 文字サイズ(font-size)に使う場合
見出しなど、画面幅に合わせて文字を滑らかに拡大・縮小させたいときに便利です。
h1 {
/* 最小: 20px
推奨: 5vw(画面幅の5%)
最大: 40px
*/
font-size: clamp(20px, 5vw, 40px);
}
2. 余白(padding / margin)に使う場合
コンテナの左右の余白や、セクション間の隙間をレスポンシブにしたいときに大活躍します。
.container {
/* 左右の余白を、スマホでは16px、PCでは最大40pxにする */
padding: 0 clamp(16px, 5vw, 40px);
}
.section {
/* セクション間の下部の余白を、40px〜100pxの間で可変させる */
margin-bottom: clamp(40px, 8vw, 100px);
}
さいごに
clamp() を使えば、デバイスごとの微調整から解放され、CSSの記述量が驚くほどスッキリします。 文字サイズにも余白にも、ぜひ積極的に使ってみてください!


