clamp関数について知っておこう

white, black, and red illustration

IE11が2022年6月16日を以てサポートが終了となり、起動するとEdgeが立ち上がるようになります。ということでいままでIE11未対応のため使いづらかったものも、ようやく素直に実装していくことが出来るようになります。CSSのclamp関数(およびmax、min)もそのひとつです。

clamp関数

https://developer.mozilla.org/ja/docs/Web/CSS/clamp

clamp(最小値, 推奨値, 最大値);

  • その値が最大値と最小値の間なら推奨値を適用
  • そうでなければ最大値および最小値を使う

推奨値が固定値だとなんの意味もなさないので、推奨値には%やvw、qwなどの可変値を使います。

実際の作例

このあたりで詳しく解説されています。

https://web.dev/min-max-clamp/
https://coliss.com/articles/build-websites/operation/css/three-logical-css-functions-min-max-clamp.html

「max-widthでいいのでは?」とか「メディアクエリやコンテナクエリで都度書けばいいのでは?」と考えがちですが、最大値や最小値が一行で済むこと以上に、その間の値をシームレスに設定できることに強みがあります。

Bootstrapのようなフレームワークではメディアクエリが768px、992px、1200pxなど設定されており、そのサイズの時の見え掛かりを中心に確認しがちです。しかし実際のところ閲覧者が設定しているブラウザサイズはばらばらであるし、スマートフォンやタブレットも様々なサイズが存在します。

それら全てのサイズで都度確認することは現実的ではないので、「どういう幅であっても幅に合わせて伸縮して収まる」という作りが、これまで以上に重要になります。前回書いたコンテナクエリのように、親要素が可変するギミックも多数あります。

まとめ

新たな仕組みを導入するのはいつでも大変ですが、ミニマムに導入して動作確認を取っていくなどして、過去案件含めて少しずつアップデートしていきたいものです。

スタッフ積極採用中

ジェイオンラインではスタッフを随時募集しております。
採用情報ページよりお気軽にお問い合わせください。

この記事を書いた人

牧野直樹
牧野直樹
ディレクターとして色々やっています。ねこが好きです。