CSS - content-visibility

トップ > CSSリファレンス > content-visibility

概要

属性名content-visibility
visible | hidden | auto
初期値visible
適用可能要素すべての要素
継承継承しない
サポートhttps://caniuse.com/content-visibility

説明

<image> の loading="lazy" で画面がスクロールして表示が必要になるまで画像の読込を遅らせるのと同様に、任意のコンテンツに auto を指定することで、スクロールして描画が必要になるまでコンテンツの中身(子要素)のレンダリングを遅らせ、画面描画の体感速度を向上させます。

説明
visible通常通りコンテンツの中身(子要素)を描画します。
hiddenコンテンツの中身(子要素)を描画しません。
autoコンテンツの中身(子要素)の描画を、コンテンツがビューポートに含まれるようになるまで遅延させます。

ブラウザがスクロールしてレンダリングが始まるまでは子要素を評価しないため、中身の高さや幅も計算されません。heightwidth で固定的に指定することもできますが、contain-intrinsic-size を用いて暫定的な高さや幅を指定しておくこともできます。暫定値はおおよその値でよく、子要素のレンダリング時に補正されます。

使用例

CSS
article {
  border: 1px solid #999;
  content-visibility: auto;
  contain-intrinsic-size: 0 50px;
}
HTML
<article>
  <p>下記の画像はスクロールしたので表示されていますが、スクロールされる前は表示されていませんでした。</p>
  <img src="image/sample.png" alt="Sample Image">
</article>
表示

下記の画像はスクロールしたので表示されていますが、スクロールされる前は表示されていませんでした。

Sample Image

Copyright (C) 2023 杜甫々
初版:2023年2月26日、最終更新:2023年2月26日
http://www.tohoho-web.com/css/prop/content-visibility.htm