こんにちは。masaです。
レスポンシブデザインを作るとき、フォントサイズや余白を「画面幅に合わせて伸縮させたい」場面はよくありませんか?
しかし、従来のvwやcalc()だけでは制御が難しく、「小さすぎる」「大きすぎる」といった問題が起こりがちです。
そこで便利なのがCSSのclamp()関数です。
今回はclamp()関数についてお話しします。
clamp() は3つの値を受け取り、下記の構文で書きます。
clamp(最小値, 推奨値, 最大値)
ブラウザは 「推奨値」を使いつつ、最小値と最大値の範囲内に収める という動きをしてくれます。
h1 {
font-size: clamp(1.5rem, 5vw, 3rem);
}
この場合、フォントサイズは通常 5vw で動きますが、画面が極端に小さい時には 1.5rem 未満にはならず、大きな画面では 3rem を超えません。
body {
font-size: clamp(14px, 2vw, 18px);
}
スマホでは小さすぎず、PCでは大きすぎないちょうど良いフォントサイズになります。
.section {
padding: clamp(16px, 5vw, 64px);
}
画面サイズに応じて余白を調整しつつ、見やすさを保てます。
.block {
width: clamp(200px, 50%, 400px);
}
ブロックの幅を「200px以上、400px以下」で可変にできます。
clamp() は主要なモダンブラウザ(Chrome, Firefox, Safari, Edge)でサポートされています。
IEは非対応ですが、2025年現在では気にする必要はほぼありません。
いかがでしたでしょうか? clamp() を活用することでCSSの記述がすっきりしそうですね。
これからレスポンシブデザインを作るなら、ぜひ clamp() を積極的に活用してみましょう!
山口県育ちの音楽大好きおっちゃんです。10年ほど関東にいましたが、Uターンで地元山口に帰ってきました。山口のことや、Webのことなど、さまざまな情報を共有していければと思います。どうぞ何卒よろしくお願いいたします。
REC.