Paint containment
ペイントコンテインメントは、要素の子孫が要素のボックス外にはみ出して描画されないことをブラウザに伝えます。overflow: hidden に似た効果がありますが、ブラウザにレンダリング最適化のヒントも提供します。画面外にスクロールされた要素のペイントをスキップするなど、パフォーマンス向上に活用されます。
概要
ペイントコンテインメントは、要素の子孫が要素のボックス外にはみ出して描画されないことをブラウザに伝えます。overflow: hidden に似た効果がありますが、ブラウザにレンダリング最適化のヒントも提供します。画面外にスクロールされた要素のペイントをスキップするなど、パフォーマンス向上に活用されます。
対応ブラウザ
デスクトップ
Chrome 52+
Edge 79+
Safari 15.4+
Firefox 69+
モバイル
Chrome Android 52+
Safari iOS 15.4+
Firefox Android 79+
基本構文
CSS
.card {
contain: paint;
}
.offscreen-widget {
contain: layout paint;
} 実務での使いどころ
-
オーバーフローコンテンツの最適なクリッピング
子要素がコンテナ外にはみ出さないことをブラウザに保証し、不要なペイント処理をスキップしてレンダリングパフォーマンスを改善できます。
注意点
- ペイントコンテインメントは要素を新しいスタッキングコンテキストにし、overflow: visible は事実上 hidden として扱われます。意図しないクリッピングに注意してください。
アクセシビリティ
- ペイントコンテインメントによるクリッピングで重要なコンテンツが視覚的に隠れる場合、スクリーンリーダーはそのコンテンツにアクセスできますが、視覚的なユーザーは見逃す可能性があります。