Inline-size containment
要素のインライン方向(通常は幅)のサイズ計算がコンテンツに依存しないことをブラウザに伝え、レイアウトの再計算範囲を限定します。コンテナクエリ(@container)の前提条件としても重要で、インラインサイズコンテインメントが設定された要素はコンテナクエリのターゲットとして使用できます。パフォーマンス最適化の重要な機能です。
概要
要素のインライン方向(通常は幅)のサイズ計算がコンテンツに依存しないことをブラウザに伝え、レイアウトの再計算範囲を限定します。コンテナクエリ(@container)の前提条件としても重要で、インラインサイズコンテインメントが設定された要素はコンテナクエリのターゲットとして使用できます。パフォーマンス最適化の重要な機能です。
対応ブラウザ
デスクトップ
Chrome 105+
Edge 105+
Safari 16+
Firefox 101+
モバイル
Chrome Android 105+
Safari iOS 16+
Firefox Android 101+
基本構文
CSS
.container {
contain: inline-size;
container-type: inline-size;
}
@container (min-width: 400px) {
.card { flex-direction: row; }
} 実務での使いどころ
-
コンテナクエリの有効化
contain: inline-size を設定することで、コンテナクエリが使用可能になり、親要素のサイズに応じたレスポンシブコンポーネントを作成できます。
注意点
- インラインサイズコンテインメントを設定すると、要素は子要素のサイズに基づいて自動的に幅を調整しなくなります。明示的な幅の設定が必要になる場合があります。
アクセシビリティ
- コンテインメントはパフォーマンス最適化とレイアウト制御のための機能であり、アクセシビリティに直接影響しません。