累计布局偏移 HTML 个元素

Cumulative Layout Shifts HTML Elements

正在尝试修复我网站的 CLS。我将其放入 CLS 调试器,它发现这些 HTML 元素对页面的累积布局偏移贡献最大:

CLS SCORE HTML ELEMENT
0.3972 nav#site-nav
0.3972 div#content>section.cs-section.no-padding.parallax.cs-section-cover-bg.rocket-lazyload>div.container-fluid>div.row>div.col-md-12>section.cs-section
0.3972 div#content>section.cs-section.sm-padding
0.3972 div#content>section.cs-section.no-padding.parallax.rocket-lazyload
0.3972 div#content>section.cs-section.custom-padding.cs-text-white

既然我知道是这些因素导致了问题,那么最好的行动方案是什么才能避免它们转移?我应该分别针对其中的每一个并指定 width/height 吗?我如何定位 cs.sections?

解决 CLS 问题的关键通常在于 内联 这些元素的 CSS。

所以你会有这样的东西

<html>
<head>
  <title>title text</title>
  <style>
    nav#site-nav{
      /* All your CSS for this element here */
    }
    /* The styles for the other elements causing a layout shift */
  </style>


</head>
<body></body>
</html>

您对出现在首屏(无需滚动即可看到)的所有项目执行此操作。

这样,一旦 HTML 加载完毕,浏览器便拥有呈现页面初始视图所需的一切,并且知道将所有内容放在哪里。

这还有一个额外的好处,即您的初始 Paint 会快如闪电,因此您不会获得 CLS,而且渲染速度更快。

图片

如果有任何图像导致布局偏移,那么您需要向这些元素添加 widthheight,以便浏览器可以在它们加载之前为它们分配 space .