STEP 3 / 10 ・ 応用

モダンCSSを見てみよう🌈

CSSだけで表現できることが、どんどん増えているよ。2026年7月時点で、実際に主要ブラウザで使えるいまどきの書き方を紹介するね。

📏 「Baseline」ってなに?

このページでは、機能の説明に「Baseline」という言葉を使うよ。Baselineは「主要なブラウザ(Chrome・Edge・Firefox・Safari)ぜんぶで使えるようになったよ」を教えてくれる目印。ここで紹介する機能は、どれもBaselineで「使ってOK」とされているものだよ。

CSSネストルールの中に、別のルールをそのまま入れ子にして書けること。箱の中に箱を入れるイメージだよ。

セレクタの中に、子要素のスタイルをそのまま書けるようになったよ。SassやLESSでできた書き方が、標準のCSSだけでできる。

これまでは、こう書く必要があった:

.card { background: pink; }
.card h3 { color: hotpink; }
.card a { color: dodgerblue; }

ネストを使うと、こう書ける:

.card {
  background: pink;

  h3 { color: hotpink; }
  a { color: dodgerblue; }
}
:has() セレクタ

「〇〇を含んでいる要素」を選べる、CSS界では待望だった新セレクタ。JSなしで親の見た目を子の状態から変えられるよ。

:has()を使うまでは「子の状態を見て親を変える」はJS抜きでは不可能だったよ。地味だけど大きな進化。
コンテナクエリ画面全体の幅じゃなくて、「その部品が置かれている箱(コンテナ)の幅」を基準にスタイルを変えられる仕組みだよ。

画面幅(メディアクエリ)じゃなくて、「そのパーツが置かれている箱の幅」でレイアウトを変えられる機能。同じカード部品を、狭い場所でも広い場所でも賢く表示できる。

Popover APIプログラムやブラウザの機能を使うために、あらかじめ決められた「窓口」や「呼び出し方」のこと。

ツールチップやミニウィンドウを、JavaScriptなしのpopover属性だけで作れる機能。

popovertargetに書いた値と、開きたい要素のidを同じにするだけ。あとはブラウザが「外側クリックで閉じる」「Escで閉じる」まで面倒を見てくれるよ。
新しい色の書き方

color-mix()で2つの色をブレンドしたり、oklch()という人の目の感覚に近い色空間を指定できるようになったよ。

🌗 light-dark():ダークモード対応がシンプルに

OSの「ダークモード」設定に合わせて、色を自動で切りかえられる関数。ライト用とダーク用の色を1か所にまとめて書けるから、管理がラクになるよ。

:root {
  color-scheme: light dark;
  --bg: light-dark(#fff0f7, #2e2138);
  --text: light-dark(#5b4a63, #f4ecfb);
}

body {
  background: var(--bg);
  color: var(--text);
}

🔬 もっと新しい機能たち(今はまだ実験的)

実験的 アンカーポジショニング … 要素を別の要素にくっつけて配置する機能。ChromeやEdgeでは使えるけど、2026年7月時点でSafariはまだ対応していないので、このサイトでは体験コーナーを用意していないよ。

わりと新しい View Transitions API … ページや要素の切りかわりに、なめらかなアニメーションを簡単に付けられる機能。対応が進んできているところ。

気になる人は、使う前に必ず「Baseline」の状況をチェックしてから使ってみてね。

見た目はバッチリ!🐤🌈

次は、ページに命を吹き込む「JavaScript」のきほんを学んでいこう。

JSを学びにいく →