関数clamp

関数 clamp は3つのパラメータを取ります:最小値、推奨値、最大値。 これは以下を返します:

構文

cssセレクタ {
  プロパティ: clamp(min, pref, max);
}

例 . ブロックサイズの制限

次の例では、ブロックの推奨サイズは 画面幅の 30% になります。 ただし、 100px より小さく、 300px より大きく なることはありません:

html<div id="con1"></div>
<div id="targ"></div>
<div id="con2"></div>
css#targ {
  width: clamp(100px, 30%, 300px);
  height: 100px;
  border: 1px solid red;
  margin: 30px auto;
}
#con1 {
  width: 100px;
  height: 100px;
  border: 1px solid black;
  margin: 30px auto;
}
#con2 {
  width: 300px;
  height: 100px;
  border: 1px solid black;
  margin: 30px auto;
}

Результат:

例 . レスポンシブなフォントサイズ

次の例では、フォントの推奨サイズは 4vw になります。 ただし、 16px より小さく、 32px より大きく なることはありません:

html<p id="con1">
  responsive text example
</p>
<p id="elem">
  responsive text example
</p>
<p id="con2">
  responsive text example
</p>
css#elem {
  font-size: clamp(16px, 4vw, 32px);
  color: red;
}
#con1 {
  font-size: 16px;
}
#con2 {
  font-size: 32px;
}

Результат:

例 . レスポンシブな角丸の半径

次の例では、角丸の推奨半径は 3vw になります。 ただし、 5px より小さく、 20px より大きく なることはありません:

html<div id="con1"></div>
<div id="elem"></div>
<div id="con2"></div>
cssdiv {
  width: 100px;
  height: 100px;
  margin: 20px auto;
  background: lightblue;
}
#elem {
  border-radius: clamp(5px, 3vw, 20px);
  background: #efafc6;
}
#con1 {
  border-radius: 5px;
}
#con2 {
  border-radius: 20px;
}

Результат:

関連項目

  • 最小値を選択する関数 min,
  • 最大値を選択する関数 max,