Layout containment
レイアウトコンテインメントは、要素の内部レイアウトが外部に影響しない(逆も然り)ことをブラウザに宣言します。これによりブラウザは要素内部の変更時に全体のレイアウト再計算を省略でき、パフォーマンスが向上します。特に動的にコンテンツが変わるウィジェットやカード型のコンポーネントに有効です。
対応ブラウザ
| 機能 | デスクトップ | モバイル | ||||
|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | Chrome Android | Safari iOS | |
css.properties.contain.layout | 52 | 79 | 69 | 15.4 | 52 | 15.4 |
基本構文
CSS
.widget {
contain: layout;
}
.dashboard-card {
contain: layout style;
} ライブデモ
実務での使いどころ
-
独立したウィジェットのレイアウト分離
ダッシュボードのウィジェットなど、独立したコンポーネントのレイアウトを分離し、内部変更がページ全体の再計算を引き起こさないようにできます。
注意点
- レイアウトコンテインメントが設定された要素は新しいスタッキングコンテキストと包含ブロックを形成します。position: fixed の子要素の基準が変わる点に注意してください。
アクセシビリティ
- レイアウトコンテインメントはレンダリング最適化の機能であり、アクセシビリティに直接影響しません。