CSSの実装はコンテナクエリで大きく変わる! コンテナクエリをデベロッパーツールで検証およびデバッグする方法
Post on:2022年7月15日
Webのレスポンシブは、メディアクエリによるページベースだけでなく、コンテナクエリによる親コンテナベースの実装ができるようになります。
このCSSの新機能コンテナクエリによりコンポーネントを複数のコンテクストで使用でき、コンポーネント単位の実装も簡単になります。Googleのデベロッパーによるコンテナクエリをデベロッパーツールで検証およびデバッグする方法を紹介します。

Inspect and debug CSS container queries
by Sofia Emelianova, Jecelyn Yeen
下記は各ポイントを意訳したものです。
※当ブログでの翻訳記事は、元サイト様のライセンスに基づき翻訳しています。
はじめに
この記事では、ChromeのデベロッパーツールでCSSコンテナクエリを検証およびデバッグする方法について解説します。
CSSのコンテナクエリを使用すると、親コンテナのプロパティに基づいて要素のスタイルを設定することができます。この新機能により、レスポンシブWebデザインのコンセプトが、今までのページベースからコンテナベースに変わります。
コンテナクエリは2022年7月現在、実験的な機能です。デベロッパーツールでコンテナクエリのサポートを有効にするには、「chrome://flags」で「Enable CSS Container Queries」を「Enabled(有効)」にします。
コンテナクエリについてさらに詳しく学びたい人は、以前の記事をご覧ください。
コンテナクエリをすぐに使いたいという人にはポリフィルも用意されています。
コンテナとその子孫を見つける
クエリコンテナとして定義されたすべての要素は、Elements(要素)パネルでcontainer
バッジが表示されます。このバッジを選択すると、コンテナとその子孫を点線のオーバーレイで囲みます。
オーバーレイを表示するには、
- デベロッパーツールを開く。
- Elements(要素)パネルで、コンテナとして定義されている要素の横にある
container
バッジをクリックする。

1. デベロッパーツールを開く。

2. container
バッジをクリックする。
この例では、container-type: inline-size;
プロパティがコンテナ要素を定義しています。子孫はその水平軸を照会し、コンテナの幅に基づいてスタイルを変更できます。

コンテナ要素は.card
に定義されている。
コンテナクエリを確認する方法
Elements(要素)パネルでは@container
クエリ宣言が子孫要素に適用されたとき、つまりコンテナがクエリの条件を満たしたときに表示されます。
コンテナクエリ用のデモページを用意したので、実際に確認してみてください。主要なCSSは、下記のようになっています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
@container (inline-size > 400px) { .coffee p { display: block; } } @container (inline-size > 600px) { .coffee { display: grid; grid-template-columns: 280px auto; } .coffee h1 { grid-column: 1/3; } .coffee img { grid-row: 2/4; } |
このデモでは、コンテナの幅が次のピクセル数を超えると、それに対応するスタイルが適用されます。
- 400px以上:
p
要素はブロックとして表示されます。新しい行から始まり、幅全体を占めます。 - 600px以上: 水平のグリッドレイアウトが適用され、
h1
要素は上部に、img
要素は左側に配置されます。
1つ目の@container
宣言を検証してみます。
- Elements(要素)パネルで、コンテナの幅を
500px
に変更します。これでp
要素が表示されます。 p
要素を選択します。Style(スタイル)ペインに@container
宣言と親コンテナarticle.card
へのリンクが表示されているのが確認できます。- コンテナの幅を
600px
以上に変更し、影響を受ける要素のいずれかを選択します。水平レイアウトを実装する@container@container
宣言を確認してください。

1. コンテナの幅を500px
に変更

1. p
要素が表示される

2. p
要素を選択

3. コンテナの幅を610px
に変更

3. 水平レイアウトになる

3. 幅を変更したので、適用されるスタイルも変更される
コンテナ要素を検索する方法
クエリを実行したコンテナ要素を検索して選択するには@container
宣言の上にある要素名にカーソルを合わせてクリックします。

コンテナクエリの確認

@container
宣言の上にある要素名にカーソルを合わせる
カーソルを合わせると、名前がElements(要素)パネル内の要素へのリンクに変わり、Style(スタイル)ペインにクエリされたプロパティとその現在の値が表示されます。
コンテナクエリをデバッグする方法
コンテナクエリをデバッグする方法は、他のCSSと同じようにStyle(スタイル)ペインでデバッグします。

Style(スタイル)ペインでコンテナクエリをデバッグ
この例では、コンテナの幅は500px
です。400px以上なので、p
要素が表示されます。
p
要素を選択します。Style(スタイル)ペインで@container (inline-size > 400px)
を確認してください。inline-size
を400px
から520px
に変更します。p
要素はクエリ条件を満たしていないため、ページから消えます。

1. @container (inline-size > 400px)
を確認

3. 520px
に変更すると、p
要素が消える
sponsors