content-visibility目前是一个实验性的属性,不过用来渐进式的优化渲染性能也是不错的,当然如果我们要在生产环境使用,还是要采用成熟的虚拟列表方案
content-visibility取值
visible 元素照常布局渲染
hidden 跳过其内容的渲染,类似设置display: none
auto 元素不可见时跳过其渲染
长列表优化
1、为列表的每一行增加content-visibility: auto;,则屏幕外的元素会跳过其内容渲染
2、为列表的每一行增加contain-intrinsic-size: 300px;,解决滚动条抖动问题
3、即便设置content-visibility: auto;,跳过渲染的元素内如果有图片,图片依然会加载,所以需要为图片设置属性loading="lazy",该属性是图片懒加载的原生实现
示例连接