コンテナのサイズに基づいてスタイルを適用する最新のレスポンシブ手法です。メディアクエリの進化版として注目されています。
@container <container-name> (<container-query>) { ... }
.card {
container-type: inline-size;
}
@container (min-width: 400px) {
.card-content {
display: grid;
grid-template-columns: 1fr 1fr;
}
}
カードコンテナが400px以上の時にグリッドレイアウトに変更
.sidebar {
container-type: size;
container-name: sidebar;
}
@container sidebar (max-height: 300px) {
.nav-item {
font-size: 0.8rem;
}
}
名前付きコンテナで高さに応じてフォントサイズを調整
メディアクエリよりも柔軟で再利用可能。コンポーネント指向の開発に最適。
container-typeの指定を忘れると動作しない。
Chrome 105+, Firefox 110+, Safari 16+