无需登录 数据私有 本地保存

content-visibility 性能演示 - 跳过渲染不可见区域

9
0
0
0
Content-Visibility 性能演示
跳过不可见区域渲染
卡片数 400
可见 0
渲染比 0%
FPS 60
提示:开启 content-visibility: auto 后,浏览器仅渲染视口内及附近的卡片。视口中的卡片会有 紫色边框高亮。尝试滚动或调整卡片数量来观察效果。关闭开关后所有卡片都会被完整渲染。
相关知识点 & 常见问题

content-visibility 是一个CSS属性,允许浏览器跳过不可见元素的渲染工作。当设置为 auto 时,浏览器会检测元素是否在视口中,如果不在则跳过其布局和绘制,仅保留占位空间(通过 contain-intrinsic-size 指定)。这能显著减少初始加载时间和滚动时的渲染开销,尤其适合长列表、图库等包含大量内容的页面。

当元素因 content-visibility: auto 被跳过渲染时,浏览器不知道它的实际大小。如果不指定预估大小,滚动条会不断跳动。contain-intrinsic-size 提供了一个占位尺寸,让浏览器在跳过渲染时仍能预留正确的空间。例如 contain-intrinsic-size: auto 200px 表示使用最后已知大小,若不可用则回退到200px。

content-visibilityChrome 85+、Edge 85+、Opera 71+ 中得到良好支持,Firefox 和 Safari 的支持正在推进中。对于不支持的浏览器,该属性会被忽略,不会产生负面影响(渐进增强)。建议在以下场景使用:长列表页面、图片画廊、折叠内容区域、无限滚动列表等。对于首屏关键内容,避免使用以免影响LCP等指标。

auto 让浏览器自动判断:元素在视口内时正常渲染,离开视口后跳过渲染但仍保留占位空间。hidden始终跳过渲染且不保留空间(类似 display: none 但保留 DOM 状态)。auto 适合长列表优化,hidden 适合需要快速切换显示/隐藏的离屏内容。