container-type

レイアウト・配置

要素をコンテナクエリのコンテナとして定義し、どの軸のサイズ変化を監視するかを指定するプロパティです。子要素がコンテナのサイズに応じてスタイルを変更できるようになります。

構文

Syntax
container-type: normal | size | inline-size

コード例

1

.card { container-type: inline-size; } @container (min-width: 300px) { .card-title { font-size: 1.5rem; } }
実行結果
inline-size監視
幅の変化を監視

カードの幅に応じてタイトルのフォントサイズを変更

2

.widget { container-type: size; } @container (min-height: 200px) and (min-width: 400px) { .widget-content { display: grid; grid-template-columns: 1fr 1fr; } }
実行結果
size監視
幅と高さを監視

ウィジェットの幅と高さ両方を監視してレイアウトを変更

3

.sidebar { container-type: inline-size; container-name: sidebar; } @container sidebar (max-width: 250px) { .nav-item { font-size: 0.8rem; padding: 0.25rem; } }

サイドバーが狭い時にナビゲーションアイテムをコンパクトに

💡 TIPS

inline-sizeは横幅のみ監視(最も一般的)。sizeは幅と高さ両方を監視するが、無限ループの可能性があるため慎重に使用。container-nameと組み合わせて複数コンテナを管理できる。

⚠️ よくある間違い

container-typeを指定しないとコンテナクエリが動作しない。sizeを使う際は高さの循環参照に注意。

関連プロパティ

ブラウザサポート

Chrome 105+, Firefox 110+, Safari 16+