CSSツール

無料 コンテナクエリスニペットジェネレーター

コンポーネントベースのレスポンシブデザイン向けの@container CSSルールを生成します。

ツールを読み込み中...

コンテナクエリスニペットジェネレーターとは

コンテナクエリを使用すると、ビューポートではなく親コンテナのサイズに基づいてCSSスタイルを適用できます。これはメディアクエリがブラウザウィンドウに応答するのとは異なります。再利用可能なコンポーネントの場合、コンテナクエリは同じコンポーネントが狭いサイドバーでも広いメインコンテンツエリアでも、スタイルを複製することなく正しくレンダリングできることを意味します。

クイックアンサー

コンテナクエリを使用して、ビューポートではなく親コンテナのサイズに基づいて要素をスタイリングします。これらはメディアクエリのコンポーネントレベルの同等物であり、再利用可能なウィジェットレイアウトに便利です。

Last updated: 2026-05-25

制限事項

  • コンテナクエリにはChrome 105以上、Edge 105以上、Firefox 110以上、Safari 16以上が必要です。古いブラウザはこの機能を完全に無視します。
  • container-nameプロパティはDOM内のcontainer-type祖先を参照する必要があります。コンテナツリー外の要素はクエリできません。
  • コンテナクエリ単位(cqw、cqh、cqi、cqb、cqmin、cqmax)は@containerブロック内でのみ意味を持ち、外部では予期しない値を生成する可能性があります。

Sources:MDN Web Docs · W3C Specifications · jquery.app on GitHub

使い方

  1. クエリ基準となる親要素にcontainer-typeとオプションのcontainer-nameを設定します。
  2. min-width、max-width、またはinline-size範囲などのブレークポイント条件を選択します。
  3. 条件が満たされたときに適用されるCSSルールを記述します。
  4. 生成された@containerブロックをコピーし、コンポーネントのスタイルシート内に配置します。

主な用途

  • カードコンポーネントがコンテナの縮小に応じて水平から垂直レイアウトに切り替わるようにする。
  • 狭いコンテナではフィールドを積み重ね、広いコンテナではインラインに配置するフォーム行を構築する。
  • ビューポートとは独立して、コンテナ幅に基づいてフォントとスペーシングをサイズ変更するウィジェットを作成する。

用途

使用例

サイドバーとメインコンテンツのカードコンポーネント

再利用可能なカードが狭いサイドバーと広いメインカラムの両方に配置されています。コンテナクエリにより、カードは単一のコンポーネントクラスから、サイドバーでは積み上げレイアウト、メインコンテンツでは水平レイアウトを使用します。

利用可能なスペースに適応するフォーム行

名前、メール、電話フィールドを持つフォームがfieldsetにコンテナクエリを使用します。コンテナが500pxより広い場合、フィールドはインラインに配置されます。500px未満では、各フィールドが独自の行に積み重なります。

よくあるミス

  • 親にcontainer-typeを設定せずに要素にコンテナクエリを適用し、コンテナコンテキストが確立されずクエリが適用されない。
  • コンテナクエリ内でvwやvhなどのビューポート単位を使用し、コンテナではなくビューポートを参照し続ける。
  • フォールバックレイアウトなしで完全にコンテナクエリに依存し、コンテナクエリをサポートしないブラウザでコンポーネントがスタイリングされない。

検証

  1. DevToolsでコンテナ要素をリサイズし、子要素がビューポートの変更ではなくコンテナサイズの変更に応答することを確認する。
  2. @containerブロック外にベーススタイルを設定することで、サポートされていないブラウザのフォールバックスタイルを確認する。

FAQ

コンテナクエリスニペットジェネレーターのFAQ

コンテナクエリをサポートしているブラウザは?

コンテナクエリはChrome 105、Firefox 110、Safari 16、Edge 105以降のすべてのモダンブラウザでサポートされています。古いブラウザの場合は、@containerルールなしで動作するフォールバックレイアウトを提供してください。

container-typeのinline-sizeとsizeの違いは何ですか?

inline-sizeはインライン方向(水平書式では幅)のみに応答するクエリコンテナを確立します。sizeは幅と高さの両方に応答するコンテナを確立しますが、コンテナにcontain: layout styleが必要で、レイアウト動作に影響を与える可能性があります。

コンテナクエリとメディアクエリの違いは何ですか?

メディアクエリはビューポートサイズとグローバルなブラウザ条件に応答します。コンテナクエリは親コンテナ要素のサイズに応答します。つまり、コンテナクエリでスタイリングされたコンポーネントは、配置場所(広いメインカラム、狭いサイドバー、カードグリッド)に関係なく、レイアウトコンテキストごとに個別のメディアクエリブレークポイントを必要とせずにコンテナに適応します。

親にcontainer-typeを設定せずに@containerを使用するとどうなりますか?

@containerルールは効果がなく、含まれているスタイルは適用されません。すべてのコンテナクエリには、container-typeがinline-size、size、またはnormalに設定された祖先要素が必要です。ブラウザは祖先チェーンを検索して最も近いコンテナコンテキストを見つけます。見つからない場合、クエリは静かに失敗します。

関連ツール

その他のcssツール

こちらもお試しください

こちらもお試しください