cls 优化

77 阅读1分钟

image.png

创造一些空白区域占位

用户触发了一个网络请求,可能需要花一段时间才能结束,最好的做法是创造一些空白区域或者展示loading,避免请求结束后的预料之外的布局偏移。如果用户没有意识到正在加载数据,或者不知道资源是否加载完成,他们在等待的过程中会点击某些元素,这些元素后面可能会移动到了下方,就跟文章开头的图一样。

布局偏移如果发生在用户输入之后的500ms内,会有一个 hadRecentInput 的标记,这样就可以被排除在外。

使用真正的骨架屏

image.png

1. 如何处理异步模块

功能:加载category

image.png 使用skeleton占位

image.png

  1. 没有数据时

这个nav就往左边移动了,导致了向左偏移,会cls. 看样子需要做个兜底处理。

image.png 2. 有数据时,因为有占位,固定了宽度,数据返回时,宽度时一致不会造成cls问题。

image.png

image.png 结论: 没有处理无数据的问题。我们可以使用其他的用来兜底

如何修复:类目保留,更改交互。

优后效果:

image.png

2. 如何设置了宽度没有设置高度

左边之前代码和右边修改的代码

image.png

没有设置高度下面会产生cls.

image.png 设置了高度的时候

image.png

其他扩展

图片等媒体元素占位

在图像、视频等媒体资源元素中始终包含宽度和高度大小属性。或用 CSS 中的 min-height、aspect-ratio 或类似的方式保留所需的空间。

aspect-ratio

可以用来直接指定当前元素的比例。

image.png developer.mozilla.org/zh-CN/docs/…