コンテナクエリ

目次

コンテナクエリとは

ブラウザの横幅などに応じて応じて異なるスタイルを適用するのが メディアクエリ ですが、画面内の矩形領域(コンテナ)の横幅等に応じて異なるスタイルを適用するのが コンテナクエリ です。

基本的な使用例

コンテナの container-typeinline-size または size を指定し、@container で異なるスタイルを指定する条件とスタイルを指定します。下記の例では通常コンテナ(#c1)内のテキストは赤色ですが、横幅が600px以上のコンテナ(#c2)内のテキストは青色になります。

CSS
.container { container-type: inline-size; }
#c1 { width: 700px; }
#c2 { width: 500px; }
.text { color: red; }
@container (min-width: 600px) {
  .text { color: blue; }
}
HTML
<div id="c1" class="container">
  <div class="text">Card Title</div>
</div>
<div id="c2" class="container">
  <div class="text">Card Title</div>
</div>
表示
Card Title
Card Title

コンテナ名指定

通常は最も近い親コンテナのルールに従いますが、container-name でコンテナ名を付けてどのルールに従うかを指定することができます。

CSS
.container {
  container-type: inline-size;
  container-name: my-card;
}
@container my-card (min-width: 600px) {
  .text { color: blue; }
}

コンテナタイプと名前の同時指定

container でコンテナ名とコンテナタイプを同時に指定することができます。

CSS
.container {
  container: my-card / inline-size;
}

コンテナクエリ単位

コンテナクエリ内では下記の長さの単位を使用できます。