• HTML/CSS

【サンプルあり】今すぐ使える!便利な比較関数 min() max() clamp() のお話

【サンプルあり】今すぐ使える!便利な比較関数 min() max() clamp() のお話

CSSコーディングでとても便利な比較関数(数学関数)についてご紹介します。
使う場面なども想定して記述方法をご紹介しているので、まだ使ったことのない方はぜひご覧ください。

比較関数の前に

計算関数のcalc()も合わせて使うと、とても便利です。
calc()は、px、%、vw など異なる単位の計算ができる関数です。
足し算・引き算はもちろん掛け算や割り算も可能。絶対値を指定しないので、レスポンシブサイトを制作する際にも役立ちます。

使う場面

20pxの余白がある3列のボックスの幅を指定したい

記述例

.box{
    width: calc((100% - 40px) / 3);
}

※100% から余白分を引いて、3等分する式になります。

min()の使い方

min()はCSS関数で、CSSプロパティの値としてカンマで区切られた式のリストから最小の値を設定できます。

使う場面

PCではコンテンツ幅を1200pxに固定。スマホでは幅を90%に指定したい。

記述例 min()を使う場合

.contents{
    width: min(1200px, 90%);
}

※()内の数値はどちらか小さい方の値をとるため、width: min(90%, 1200px)と書いても同じ結果になります。

記述例 min()を使わない場合

.contents{
    width: 90%;
    max-width: 1200px;
}

max()の使い方

max()はCSS関数で、CSSプロパティの値としてカンマで区切られた式のリストから最大の値を設定できます。
こちらはmin()とは逆の意味になります。

使う場面

要素の幅を100%に指定したいが、画面サイズを縮めた際、800px未満にしたくない。

記述例 max()を使う場合

.contents{
    width: max(800px, 100%);
}

※()内の数値はどちらか大きい方の値をとるため、width: max(100%, 800px)と書いても同じ結果になります。

記述例 max()を使わない場合

.contents{
    width: 100%;
    min-width: 800px;
}

clamp()の使い方

clamp()はCSS関数で、最大値と最小値の指定が可能。その間で可変するのでスマホ用の指定が省け、コードがシンプルになります。

使う場面

フォントサイズを最大16px、最小12pxの間で画面サイズに合わせて変更したい。

記述例 clamp()を使う場合

p{
    font-size: clamp(12px, 1.4vw, 16px);
}

※()内の数値は、(最小値,推奨値,最大値)の順で記載します。

記述例 clamp()を使わない場合

p{
    font-size: 16px;
}
@media screen and (max-width: 999px) {
    p{ font-size: 14px; }
}
@media screen and (max-width: 599px) {
    p{ font-size: 12px; }
}

各ブラウザの対応状況

主要ブラウザは全て対応済みです。詳細は以下でご確認ください。
Can I use


使う場面は、1例だけ記載していますが、コーディングする際 幅広く使えるので、
考え方が理解できればさまざまなシーンで応用できると思います。

ぜひ使ってみてください!日々勉強!



合わせてこちらもお読みください
Safariでclamp()が効かない場合の対処法
CSS 子要素を親要素からはみ出して画面いっぱいに表示させる方法とWindowsブラウザの注意点

  • HTML/CSS
宮野 聡美

MIYANO SATOMI Front-end Engineer / 宮野 聡美

記事をもっと見る

Our Signature Products, Born from Insight.

提案から生まれた、
MARBLEの代表プロダクト

お客様の課題を起点に、MARBLEが自ら構想し、
仕組みからデザイン、開発、運用まで一貫してつくり上げたプロダクト群です。
業務改善、運営効率化、新たな顧客体験の創出など、
企業の事業成長に直結する“実装された解決策”を形にしています。

  1. 01 入退場システム

    Entry System

    入退場システムのイメージ

    全国15店舗、会員数50万人以上のこども向けパークで稼働する入退場・決済・顧客管理システム。
    受付の効率化と回転率の向上を実現し、運営データの一元管理を可能にしています。

  2. 02 自動配送システム

    Delivery Routing

    50台のトラック、年間350日の配送を最適化する自動ルート生成システム。
    紙のFAXで届く約500件の配送情報をデジタル化し、最適ルートを自動で算出することで、大幅な業務効率化を実現しました。

  3. 03 会話型コマース連携

    Auto Routing

    ライブチャットでの接客からEC購入までを一つの導線でつなぐ会話型コマースシステム。
    リアルタイムの対話で顧客の購買意欲を高め、高いコンバージョン率につながる仕組みを構築しています。