如何避免出现大幅度的布局偏移?

SinoClick发表于:2022年09月05日 20:27:22更新于:2023年11月07日 18:55:10

概述

累计布局偏移: Cumulative Layout Shift, 简称CLS,是以用户为中心的内容视觉稳定性指标,因为它有助于量化用户体验到意外布局移位的频率,较低的CLS有助于确保页面用户视觉和交互体验。当用户浏览一个页面的时候,若是想要点击一个按钮或者进行其他交互时,页面的布局突然抖动,可以会造成用户期望之外的结果。

解决方案

字体优化

字体在未下载完成时,浏览器隐藏或者自动降级,导致字体闪烁
FOIT: Flash Of Invisible Text
FOUT: Flash Of Unstyled text

使用 font-display属性解决闪烁的问题

@font-face {
font-dispaly: block | swap | fallback | optional | auto;
}

使用css font loading API

@font-face {
unicode-range: ....; // 若是一次性将所有的字体都引入,会导致加载的内容非常多,例如汉字那么多,不可能一次性全部加载,因此可以将汉字使用频率进行拆分,然后按照优先级进行加载,且只有当其中的字体被使用的时候才会进行加载
}

使用 preload 改变资源加载优先级进行预加载

<!-- 必须使用corssorigin="anonymous" 解决跨域问题 -->
<link rel="preload" href="./xxx.woff2" as="font" type="font/woff2" crossorigin="anonymous" >


图片、视频、iframes、广告位等优化

为 image 、 video 等元素设置尺寸属性,可以保证在其资源未加载完成之前有一个很好的占位效果,不会造成CLS

<img src="xx.png" width="200" height="200" alt="png" />


专家服务

shopify用户可进入我们的网站诊断检测结果页面,点击“专家服务”,

限时1元购买我们的专家服务,获取技术专家的1对1配置服务!