home
twitter
ページトップへ
目次
  • 「clamp()関数」とは?
  • 「関数」とは?
  • 「引数」とは?
  • 「clamp()関数」を使うと何ができる?
  • 最小値と推奨値と最大値の設定ができる。
  • プロパティの値にセットすることができる。
  • 「clamp()関数」の使い方!
  • 3個の引数をとる
  • 「,」カンマ区切りで書く
  • 計算される
  • ( + ) ( - )( * ) ( / ) の演算子が使える
  • ()括弧が使える
  • min()、max()が使える
  • calc()は使わなくていい
  • 「max()関数」を上手に使うコツ!
  • 「推奨値」を相対的な値にする。
  • 「推奨値」が「最小値と最大値の範囲」の外に出るタイミングを意識する。
  • 相対的な指定をするには?
  • 絶対的な指定をするには?
  • 「clamp ()関数」の使用例!
  • Webブラウザの対応状況
  • IE(Internet Explorer)では対応していないので注意!
  • 参考リンク。
  • あわせて読みたい記事。
  • まとめ。
about
categories
page
archive
皇帝ペンギンブログ

2023/12/24 (更新日:2024/07/11)

【CSS】「clamp()関数」について丁寧に解説!【分かりやすい】

Categories > CSSの基本編
CSSの「clamp()関数」の使い方を丁寧に教えてほしい。

この記事では「clamp()関数」の使い方について解説します。

この記事で得られる知識!

  • 「clamp()関数」とは何か?
  • 「clamp()関数」の使い方!
  • 「clamp()関数」を上手に使うコツ!
  • 「clamp()関数」の使用例!

この記事を読むことで、これらの知識が得られます。

また、下の動画でも「clamp()関数」について詳しく解説しているので、一緒に実際にコードを書きながら学びたい方はこちらをどうぞ!

上手く使えば便利な場面もある関数なので、サクッと読んでね!

では、内容へ入っていきますね!

目次
非表示
  • 「clamp()関数」とは?
  • 「関数」とは?
  • 「引数」とは?
  • 「clamp()関数」を使うと何ができる?
  • 最小値と推奨値と最大値の設定ができる。
  • プロパティの値にセットすることができる。
  • 「clamp()関数」の使い方!
  • 3個の引数をとる
  • 「,」カンマ区切りで書く
  • 計算される
  • ( + ) ( - )( * ) ( / ) の演算子が使える
  • ()括弧が使える
  • min()、max()が使える
  • calc()は使わなくていい
  • 「max()関数」を上手に使うコツ!
  • 「推奨値」を相対的な値にする。
  • 「推奨値」が「最小値と最大値の範囲」の外に出るタイミングを意識する。
  • 相対的な指定をするには?
  • 絶対的な指定をするには?
  • 「clamp ()関数」の使用例!
  • Webブラウザの対応状況
  • IE(Internet Explorer)では対応していないので注意!
  • 参考リンク。
  • あわせて読みたい記事。
  • まとめ。

「clamp()関数」とは?

「clamp()関数」とはCSSに用意されている関数の1つです。

CSSという言語にも関数があります!

「関数」とは?

関数とは、「値を渡すと」「何か一定の処理をしてくれる」ものです。

例えば、複数の値を渡すと、その中で最小のものを選んで返してくれる、などですね。

「引数」とは?

関数に渡す値のことを「引数」といいます。

これはCSSに限らず他のプログラミング言語でも使われる用語なので知っておいてください!

「clamp()関数」を使うと何ができる?

p {
  width: clamp( 400px, 80%, 900px );
}

「clamp()関数」を使うと、最小値と推奨値と最大値の設定をした上で、それをプロパティの値にセットすることができます。

ここで重要なのは下記の2点です。

  • 最小値と推奨値と最大値の設定ができる。
  • プロパティの値にセットすることができる。
これらについて詳しく、みていきます。

最小値と推奨値と最大値の設定ができる。

p {
  width: clamp( 400px, 80%, 900px );
}

1つ目の引数で「最小値」の設定ができ、

2つ目の引数で「推奨値」の設定ができ、

3つ目の引数で「最大値」の設定ができます。

基本的に「推奨値」が使われて、推奨値が最小値を下回る際は「最小値」が使われて、推奨値が最大値を上回る際は「最大値」が採用されます。

プロパティの値にセットすることができる。

p {
  width: clamp( 400px, 80%, 900px );
}

上の例では、「width」プロパティに値をセットする感じで使っています。

そのような位置で「clamp()関数」は使います。

「clamp()関数」の使い方!

それでは「clamp()関数」の使い方のポイントは下記の通りです!

「max()関数」の使い方!

  • 3個の引数をとる
  • 「,」カンマ区切りで書く
  • 計算される
  • ( + ) ( – )( * ) ( / ) の演算子が使える
  • ()括弧が使える
  • min()、max()が使える
  • calc()は使わなくていい
では一つ一つ丁寧に解説していきます!

3個の引数をとる

p {
  width: clamp( 400px, 80%, 900px );
}

「clamp()関数」は「3個の引数」をとります。

1つ目の引数で「最小値」の設定ができ、

2つ目の引数で「推奨値」の設定ができ、

3つ目の引数で「最大値」の設定ができます。

「,」カンマ区切りで書く

p {
  width: clamp( 400px, 80%, 900px );
}

引数は「,」カンマで区切って書きます。

計算される

p {
  width: clamp( 400px, 80% + 30px, 900px );
}

引数には計算式が使えます。そのまま計算式を書いてあげればOKです!

( + ) ( – )( * ) ( / ) の演算子が使える

p {
  width: clamp( 400px, 20% * 1vw, 900px );
}

使える演算子!

  • 「+」加算
  • 「-」減算
  • 「*」乗算
  • 「/」除算

これらの演算が使えます。

()括弧が使える

p {
  width: clamp( 400px, ( 30% + 30px ) * ( 1vh + 2px ), 900px );
}

()括弧を使うこともできます。括弧の中が先に計算されます。

min()、max()が使える

p {
  width: clamp( 400px, max( 20vw, 20vh ), 900px );
}

「max()関数」の中には「min()関数」「clamp()関数」を含めて書くことができます!

calc()は使わなくていい

p {
  width: clamp( 400px, calc( 20% + 30px ), 900px );
}

「calc()関数」を使わなくても、計算されるのでそのまま「計算式」を書いてあげればOKです。

「max()関数」を上手に使うコツ!

「max()関数」を上手に使うコツとしては下記が挙げられます。

「max()関数」を上手に使うコツ!

  • 「推奨値」を相対的な値にする。
  • 「推奨値」が最小値と最大値の範囲の外に出るタイミングを意識する。
やったー!

「推奨値」を相対的な値にする。

p {
  width: clamp( 400px, 80%, 900px );
}

「推奨値」を相対的な値にすることで、最小値と最大値が活きてきます。

逆に「推奨値」の「200px」みたいな感じで絶対的な指定をしたら、最小値と最大値の意味がなくなってしまいます。

「推奨値」が「最小値と最大値の範囲」の外に出るタイミングを意識する。

p {
  font-size: clamp( 16px, 10vw, 30px );
}

上の指定だと、画面幅が「300px」になったタイミングでフォントサイズが「30px」になります。

そして画面幅が「300px」以上だと、常に最大値の「30px」が使われるような指定です。

これだと、「380px以上」の画面幅のデバイスが多い現状を踏まえると、ほぼ全てのデバイスで単に最大値の「30px」が使われるだけになってしまいます。これだと「clamp()関数」が上手く活かせていませんね。

解決方法!
p {
  font-size: clamp( 20px, 4vw, 36px );
}

「4vw」が「20px」になるのは画面幅が「500px」の時で、

「4vw」が「36px」になるのは画面幅が「900px」になる時です。

なので画面幅が「500px~900px」の時はフォントサイズが画面幅に合わせて変動する、という指定になります。

このように、「最小値を下回るタイミング」と「最大値を上回るタイミング」を計算することで、どの画面幅の範囲でフォントサイズを可変にしたいか設定することができます。

この「可変になる範囲」が狭すぎたり、無かったりすると、「clamp()関数」が上手く活用できてないと言えると思うので注意してください。

相対的な指定をするには?

相対的な指定をするには下記の単位を使えばOKです。

  • 「%」
  • 「vw」
  • 「vh」
  • 「em」
  • 「rem」

これらの単位の使い方については、僕の下記の記事でしています!

【CSS】Webサイト制作でよく使う単位について解説。【px,%,em,rem,vw,vh】

関連記事

絶対的な指定をするには?

絶対的な指定をするには「px」を使って指定すればOKですね!

「max()関数」の使い方が分かってきた!分かりやすい!

「clamp ()関数」の使用例!

https://chibasyuta.org/wp-content/uploads/2023/12/clamp.mp4
p {
  font-size: clamp( 64px, 8vw, 80px );
}

基本的に推奨値の「8vw」が使われて、最小値が「64px」で、最大値が「80px」になるように設定しました。

「8vw」が最小値の「64px」を下回るのは、画面幅が「800px」より下回ったタイミングです。

また、「8vw」が最大値の「80px」を上回るのは、画面幅が「1000px」より上回ったタイミングになります。

なので画面幅が「800px」~「1000px」の範囲でフォントサイズが可変になってますね。

レスポンシブ対応する際に便利だね!

Webブラウザの対応状況

「Can I use」というサイトでWebブラウザの対応状況を調べてみた。

引用元:https://caniuse.com/?search=clamp()

ブラウザの対応状況を調べるには、「Can I use」というWebサイトを参照するといいと思います。

「clamp()関数」は、主要ブラウザでは対応しているようなので、安心して使って大丈夫だと思いますね。

最新の情報は、上記のリンクから「Can I use」へアクセスして確かめてみてください。

IE(Internet Explorer)では対応していないので注意!

「clamp()関数」は「Internet Explorer」というWebブラウザには対応していないようです。

2022 年 6 月 16 日(日本時間)をもって、Internet Explorer のサポートが終了しました。現在も当該ソフトウェア製品を利用している場合は、速やかにサポートが継続しているブラウザへ移行し、IE コンテンツを改修してください。
引用元:IPA 独立行政法人 情報処理推進機構

Microsoft 社 Internet Explorer のサポート終了について

とはいえ「IE」はもう既に開発元である「Microsoft 社」にサポートされていないので、「clamp()関数」は使っても大丈夫だと個人的に思います。「IE」になんとしても対応しなければならない理由がある方は別ですけどね。

参考リンク。

仕様書。
https://drafts.csswg.org/css-values/#funcdef-clamp

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

Can I use
https://caniuse.com/?search=clamp()

あわせて読みたい記事。

【CSS】Webサイト制作でよく使う単位について解説。【px,%,em,rem,vw,vh】

関連記事

【CSS】異なる単位の値の計算をする方法!【calc()関数】

関連記事

大学生が夏休みにweb制作で13万円稼ぐまでにやったこと。【経験談】

関連記事

まとめ。

「clamp()関数」とはCSSに用意されている関数の1つ。

「clamp()関数」を使うと、最小値と推奨値と最大値の設定をした上で、それをプロパティの値にセットすることができる。

1つ目の引数で「最小値」の設定ができ、

2つ目の引数で「推奨値」の設定ができ、

3つ目の引数で「最大値」の設定ができる。

それでは「clamp()関数」の使い方のポイントは下記の通り。

「max()関数」の使い方!

  • 3個の引数をとる
  • 「,」カンマ区切りで書く
  • 計算される
  • ( + ) ( – )( * ) ( / ) の演算子が使える
  • ()括弧が使える
  • min()、max()が使える
  • calc()は使わなくていい

「max()関数」を上手に使うコツとしては下記が挙げられる。

「max()関数」を上手に使うコツ!

  • 「推奨値」を相対的な値にする。
  • 「推奨値」が最小値と最大値の範囲の外に出るタイミングを意識する。

「clamp()関数」は、主要ブラウザでは対応しているようなので、安心して使って大丈夫だと思う!

でもIE(Internet Explorer)では対応していないので注意!

こんな感じですかね。
また、下の動画でも「clamp()関数」について詳しく解説しているので、一緒に実際にコードを書きながら学びたい方はこちらをどうぞ!
それではこんな感じでこの記事を終わります!

ではまた!

自分のロゴ!

皇帝ペンギン

全力で、書きます。
少しでもお役に立てたら幸いです。
楽しんで読んで下さい 。-_- 。
よろしくお願いします!

x(旧twitter) youtube
Categories
  • トップへ
  • ITパスポート (1)
  • programming (168)
    • CSSのアニメーション編 (26)
    • CSSのグリッドレイアウト編 (1)
    • CSSのセレクター編 (58)
    • CSSのフレックスボックス編 (1)
    • CSSのメディアクエリー編 (7)
    • CSSの基本編 (34)
    • HTMLのformタグ編 (1)
    • HTMLの基本編 (3)
    • JavaScriptの入門編 (30)
    • JavaScriptの基本編 (5)
    • Web制作をする環境を整えよう! (1)
  • Uncategorized (23)
  • VScode (1)
  • おすすめ商品! (1)
  • クラロワ (2)
  • マーケティング (17)
  • 大学生活 (7)
  • 心理学 (9)
  • 映画 (1)
  • 法学 (4)
  • 経済学 (4)
  • 読書 (7)
Pages
  • プライバシーポリシー
  • 免責事項
  • プロフィール
Archive
  • 2025年3月 (1)
  • 2025年1月 (9)
  • 2024年12月 (13)
  • 2024年11月 (5)
  • 2024年10月 (10)
  • 2024年9月 (15)
  • 2024年8月 (5)
  • 2024年7月 (6)
  • 2024年6月 (5)
  • 2024年5月 (10)
  • 2024年4月 (24)
  • 2024年3月 (11)
  • 2024年2月 (6)
  • 2024年1月 (10)
  • 2023年12月 (4)
  • 2023年11月 (3)
  • 2023年10月 (2)
  • 2023年9月 (3)
  • 2023年8月 (6)
  • 2023年7月 (3)
  • 2023年6月 (8)
  • 2023年5月 (2)
  • 2023年3月 (1)
  • 2023年2月 (1)
  • 2022年10月 (2)
  • 2022年9月 (2)
  • 2022年8月 (8)
  • 2022年7月 (2)
  • 2022年6月 (6)
  • 2022年5月 (9)
  • 2022年4月 (2)
  • 2022年2月 (4)
  • 2021年12月 (1)
  • 2021年11月 (4)
  • 2021年10月 (8)
  • 2021年9月 (14)
  • 2021年8月 (6)
  • 2021年6月 (1)
  • 2021年5月 (2)
  • 2021年4月 (1)
  • 2021年3月 (1)
  • 2021年2月 (2)
  • 2020年10月 (1)
  • 2020年7月 (1)
  • 2020年4月 (1)
  • 2020年1月 (1)
  • 2019年12月 (2)
© Copyright Syuta Chiba, 2019 All Rights Reserved.