7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【CSS】CSSにも条件分岐が!? if()関数でスタイルを切り替える方法

7
Last updated at Posted at 2025-12-07

はじめに

みなさんは、CSSで条件分岐ができるようになったのをご存じでしょうか?

これまでは、画面サイズなどの条件によってスタイルを変えたい場合は、
メディアクエリを使ったり、JavaScriptでスタイルを付け替えたりしていたと思います。

しかし、Chrome 137 以降では、「if() 関数」が使えるようになり、
特定のプロパティだけを条件に応じて、変更することができるようになりました。

そのため、この記事ではif() について紹介します。

if() 関数とは?

if() 関数は、指定した条件に応じて、特定の値を返す関数です。

基本的な構文は以下のようになります。

if ( /* 条件 */: /* trueの場合 */; else: /* falseの場合 */;)

複数条件の場合は以下のようになります。

if ( /* 条件① */ : /* 条件①がtrueの場合 */;
     /* 条件② */ : /* 条件②がtrueの場合 */;
     else: /* falseの場合 */;
   )

基本的な使い方は、以下の通りです。
<p> タグのwidthが700px以上の時に、font-sizeを24pxにして
それ以外は、16pxにしています。

p {
 font-size: if(media(width > 700px): 24px; else: 16px;)
}

条件式で使えるもの

条件で使える値

条件式で使える値は以下の3つです。

:root { --scheme: dark }

p {
  color: if(style(--scheme: dark): #FFFFFF; else: #000000;)
}
  • メディアクエリー
    • 端末の状態・特徴に応じた値
    • media(prefers-color-scheme: dark): color-scheme がdarkだったら
p {
  color: if(media(prefers-color-scheme: dark): #FFFFFF; else: #000000;)
}
  • 機能クエリー
    • CSSプロパティやプロパティ値
    • supports(color: #ff0000): colorが #ff0000 だったら
p {
  text-decoration: if(supports(color: #FFFFFF): underline;)
}

条件で使える論理式

  • 論理積(and)
/* (--scheme: dark) and (--contrast: hi) */
p {
  color: if(style((--scheme: dark) and (--contrast: hi)): #FFFFFF; else: #000000;)
}
  • 論理和(or)
/* (--scheme: dark) or (--scheme: light-dark) */
p {
  color: if(style((--scheme: dark) or (--scheme: light-dark)): #FFFFFF; else: #000000;)
}
  • 論理否定(not)
/* not style(--scheme: dark) */
p {
  color: if(not style(--scheme: dark): #FFFFFF; else: #000000;)
}

まとめ

この記事では、CSSで条件分岐ができるようになった if() 関数について紹介しました。
ぜひこの if() 関数を試してみて、よりスマートなスタイル実装に活かしてみてください!


最後まで読んでくださってありがとうございます!

普段はデザインやフロントエンドを中心にQiitaに記事を投稿しているので、ぜひQiitaのフォローとX(Twitter)のフォローをお願いします。

7
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?