提到提高页面渲染速度,我们第一想到的是优化 JavaScript。其实通过优化 CSS 也能提高页面渲染速度。
很长的页面会有大量的内容在屏幕外。如果只渲染屏幕内的内容,屏幕外的内容在出现时才渲染,能大大的节约渲染时间。
CSS Containment Module Level 2 模块 新增了 content-visibility
属性。这个属性能推迟选择的HTML元素。
当有大量离屏内容时,需要延时渲染屏幕外的内容,只需在元素上使用 content-visibility: auto
。
在屏幕外被延迟渲染的元素,在浏览器中,高度会变成 0。当发生滚动时,元素出现,被渲染后高度也会相应更新,此时滚动条行为会以非预期方式进行。解决这个问题,可以设置元素未渲染时的高度: contain-intrinsic-size: 未渲染时的高度
。代码如下:
.target-elem {
content-visibility: auto;
contain-intrinsic-size: 200px;
}
注意:如果元素或其子元素显式设置了高度,会被覆盖 contain-intrinsic-size
的值。
局限性:
开启 GPU 加速,能让动画变得更流畅。元素的样式上设置 will-change
后,会开启 GPU 加速。will-change
的值发生变化后,GPU 会优化该元素的渲染。写法:
.transition {
will-change: opacity;
}
局限性:
设置 scroll-behavior
能让滚动更流畅。 scroll-behavior
接受的值:
可接受属性值:
效果对比:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有