3
1

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のif関数

Chrome 137から使えるようになったCSSのif関数ですが、2025年6月29日時点では対応しているのがChromeとEdgeの2つのブラウザのみのようです。

can i useのcss・if関数のスクリーンショット

ifを使った画面サイズのスタイルなどができそうかなと思って試してみました。

従来のブレイクポイントを使ったやり方

<div class="box">
    <p>Test Box</p>
</div>
.box {
  background-color: black;
  border-radius: 16px;
  color: white;
  font-size: 40px;
  font-weight: bold;
  padding: 50px;
}

@media (max-width: 768px){
  .box {
    background-color: green;
    border-radius: 8px;
  }
}

@media (max-width: 375px){
  .box {
    background-color: pink;
    border-radius: 0;
  }
}

上記のコードは画面の大きさが小さくなると、背景色が黒→緑→ピンクに変わり、角丸がなくなっていきます。

ifを使ったやり方

if関数を使って書いてみました。


.box {
  background-color: if(
    media(max-width:375px): pink;
    media(max-width:768px): green;
    else: black;
  );
  border-radius: if(
    media(max-width:375px): 0;
    media(max-width:768px): 8px;
    else: 16px;
  );
  color: white;
  font-size: 40px;
  font-weight: bold;
  padding: 50px;
}

うまく機能していますね。

if関数でメディアクエリを書いたテスト

実際のソースコードは以下になります。

See the Pen CSS If function by Makoto Ogata (@makoto-ogata) on CodePen.

ブレイクポイントをrootで定義する

はじめからブレイクポイントを変数として定義して使い回せる事もできます。
その場合、以下のように書くことができます。

:root {
  --bp: if(
    media(max-width:375px): "sm";
    media(max-width:768px): "md";
    else: "lg";
  );
}

.box {
  background-color: if(
    style(--bp: "sm"): pink;
    style(--bp: "md"): green;
    else: black;
  );
  border-radius: if(
    style(--bp: "sm"): 0;
    style(--bp: "md"): 8px;
    else: 16px;
  );
  color: white;
  font-size: 40px;
  font-weight: bold;
  padding: 50px;
}

ifを使ってダークテーマの対応も出来そうですね。

p {
 color: if(
     media(prefers-color-scheme: dark): white;
     else: black;
 );
}

最後に

一つのclassの中で条件分岐ができるのは、メディアクエリを別途書く必要がなく、記述量が減って簡潔にCSSが書けるようになると思います。
まだChromeでしか使うことはできないですが、はやく全てのブラウザが対応してほしいと願うばかりです。

参考

3
1
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
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?