Widely available 安心して使用可能。主要ブラウザで広くサポートされている。

概要

min() は引数の中で最も小さい値を、max() は最も大きい値を返す。clamp(min, preferred, max) は推奨値を最小値と最大値の範囲に制限する。レスポンシブなフォントサイズや幅の設定に特に有用で、メディアクエリなしで流動的なサイズ調整が実現できる。

対応ブラウザ

デスクトップ

Chrome 79+
Edge 79+
Safari 13.1+
Firefox 75+

モバイル

Chrome Android 79+
Safari iOS 13.4+
Firefox Android 79+

基本構文

CSS
.container {
  /* 最大幅を1200pxに制限 */
  width: min(100% - 2rem, 1200px);
}

.heading {
  /* 流動的なフォントサイズ(24px〜48pxの範囲) */
  font-size: clamp(1.5rem, 4vw, 3rem);
}

.card {
  /* 最低300pxを確保 */
  width: max(300px, 30vw);
}

実務での使いどころ

  • 流動的タイポグラフィ

    clamp() でビューポート幅に応じてフォントサイズが滑らかに変化し、上限・下限も保証する。

  • レスポンシブコンテナ

    min() でコンテナ幅に上限を設け、小さい画面では全幅に広がるレイアウト。

注意点

  • clamp() の第1引数が第3引数より大きい場合、第1引数(最小値)が優先される。
  • ブラウザの最小フォントサイズ設定により、clampの最小値が無視される場合がある。

アクセシビリティ

  • clamp() でフォントサイズを制限する際、ユーザーがブラウザでズームした場合に文字が十分に拡大されるか確認する。