CSS コンテナクエリの検査とデバッグを行う

ソフィア・エメリアノバ
Sofia Emelianova

このガイドでは、Chrome DevTools の [要素] パネルで CSS コンテナクエリを調査およびデバッグする方法について説明します。

CSS コンテナクエリを使用すると、親コンテナのプロパティに基づいて要素のスタイルを操作できます。この機能により、レスポンシブ ウェブ デザインのコンセプトがページベースからコンテナベースに移行されます。

このガイドのスクリーンショットは、こちらのデモページから取得されています。

コンテナとその子孫を検出する

クエリコンテナとして定義されたすべての要素には、[要素] パネルで要素の横に container バッジが表示されます。バッジによって、コンテナとその子孫の点線のオーバーレイが切り替わります。

オーバーレイを切り替えるには:

  1. DevTools を開きます
  2. [要素] パネルで、コンテナとして定義された要素の横にある container バッジをクリックします。

コンテナバッジ。

この例では、container-type: inline-size プロパティがコンテナ要素を定義しています。子孫はインライン ディメンション(横軸)をクエリし、コンテナの幅に基づいてスタイルを変更できます。

コンテナクエリを検査する

[要素] パネルには、@container クエリ宣言が子孫要素に適用された場合、つまりコンテナがクエリの条件を満たした場合に表示されます。

こちらのデモページ@container 宣言を検査できる状況を理解するには、次のコードサンプルをご覧ください。

@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)がある水平グリッド レイアウトを採用しています。

最初の @container 宣言を検査するには:

  1. [要素] パネルで、コンテナの幅を 500px に設定します。p 要素が表示されます。
  2. p 要素を選択します。[スタイル] ペインに、@container 宣言と、親コンテナ article.card へのリンクが表示されます。

    @container<ph type=&quot;x-smartling-void-element&quot;><wbr /></ph>宣言

  3. 幅を 600px より大きい値に設定して、影響を受ける要素を選択します。水平レイアウトを実装する @container 宣言を確認します。

    @container 宣言の追加。

コンテナ要素を検索する

クエリを有効にする原因となったコンテナ要素を見つけて選択するには、@container 宣言の上の要素名にカーソルを合わせてクリックします。

要素名にカーソルを合わせます。

名前にカーソルを合わせると、[要素] パネルの要素へのリンクに変わり、[スタイル] ペインにクエリ対象のプロパティとその現在の値が表示されます。

コンテナクエリを変更する

クエリをデバッグするには、CSS の表示と変更で説明しているように、[スタイル] ペインで、他の CSS 宣言と同じようにクエリを変更します。

この例では、コンテナの幅は 500px です。段落(p)の要素がページに表示されます。

  1. p 要素を選択します。[スタイル] ペイン。@container (inline-size > 400px) 宣言が表示されます。
  2. inline-size400px から 520px に変更します。
  3. 段落(p)の要素はクエリ条件を満たしていないため、ページに表示されなくなります。