“消除首屏内容中阻碍渲染的 CSS”

2024-01-17

我一直在使用 Google PageSpeed 见解来尝试提高网站的性能,到目前为止,事实证明它非常成功。像延迟脚本这样的事情工作得很好,因为我已经有了 jQuery 的内部版本.ready()要推迟脚本直到页面完全加载,我所要做的就是内联该特定函数并将完整脚本移至页面末尾。效果很好。

但现在我发现自己盯着清单上剩下的一个黄点:“消除首屏内容中的渲染阻塞 CSS”。

我的 CSS 设置方式是有一个全局的_.css文件包含通常适用于页面结构的样式,或者在网站上的一两个以上位置使用的样式。大多数页面都有一个关联的 CSS 文件(例如,party.php has party.css)包含特定于该特定页面的样式。正如我所附的,所有 CSS 文件都会无限期缓存/t=FILEMTIME文件名(然后使用 .htaccess 删除它们),以保证文件在更改时得到更新。

因此无论如何,Google 建议内联首屏内容所需的关键样式。问题是......好吧,看看这个截图:http://prntscr.com/1qt49e http://prntscr.com/1qt49e

如你看到的...ALL内容的内容位于首屏!人们讨厌滚动,尤其是在涉及加载许多页面的游戏中。因此,我将该网站设计为适合一个屏幕(假设分辨率足够好)。所以这意味着...ALL的样式适用于首屏内容!那么……有什么解决办法吗?或者我是否在原本接近完美的分数上被那个黄色标记所困扰?


之前有人问过一个相关问题:Google Pagespeed 中的“首屏内容”是什么? https://stackoverflow.com/questions/18340402/what-is-above-the-fold-content-in-google-pagespeed

首先你必须注意到这都是关于'移动页面'.
所以当我正确解释你的问题和屏幕截图时,那就是不适合您的网站!

相反,按照谷歌在其指南中建议的一些做法,对于“正常”网站来说,事情会变得更糟而不是更好。
并不是所有来自谷歌的东西都因为来自谷歌而成为“圣杯”。如果您查看他们的 HTML 标记,他们本身并不是一个好的榜样。

我能给你的最好建议是:

  • 在 CSS 中设置替换元素的宽度和高度,以便浏览器可以布局元素,而不必等待替换内容!

另外,为什么要使用不同的 CSS 文件,而不是只使用一个?
额外的请求比少量的数据量更糟糕。在第一个请求之后,CSS 文件无论如何都会被缓存。

人们应该始终注意的事情是:

  • 尽可能减少请求数量
  • 保持页面整体权重尽可能低

并且不要让您的大脑困惑于如何获得 100% 的 Google PageSpeed Insights 工具......! ;-)

添加 1:这是 Google 向我们展示的页面,他们推荐的内容优化 CSS 交付 https://developers.google.com/speed/docs/insights/OptimizeCSSDelivery.

如前所述,我认为这既不现实,对于“正常”网站来说也没有意义!因为主要是当你有一个响应式网页设计最确定的是您使用媒体查询和其他布局样式。因此,如果你不打算先以阻塞方式加载 CSS,你会得到一个FOUT (闪烁的无样式文本)。我真的不相信这比渲染页面至少多几毫秒“更好”!

恕我直言,谷歌正在开始一场新的“炒作”(当我在 Stackoverflow 上查看所有有关它的问题时)......!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“消除首屏内容中阻碍渲染的 CSS” 的相关文章

  • 使用 htaccess 重写规则重定向后 CSS 未加载

    我有以下用户个人资料网址的简写 RewriteRule w profile php name of user 1 当我这样做时 该网站使用适当的 css 文件进行样式设置site com name of user 但当我这样做的时候却不是s
  • 手机上的网页滚动条可以隐藏吗?

    我正在尝试在移动设备上隐藏滚动条 一切在桌面上看起来都很好 没有滚动条 但是当我检查某些 Android 设备 ipad 时 我仍然可以看到灰色 细小的拇指 可以从浏览器中隐藏预定义的滚动条 我的代码 在桌面上运行良好 body webki
  • .addClass 仅添加到无序列表中单击的项目符号

    我有一个简短的无序列表 其中有两个项目符号 我添加了一些 Javascript 这样当我单击项目符号时 它会向其中添加一个类 问题是 它将该类添加到所有现有的 li 中 而不仅仅是我单击的那个 这是 JSFiddle http jsfidd
  • 继承子节点的高度(A内的IMG)

    我的电脑上有一个漂亮的 CSS a 标签 放一个 img 链接内部使图像粘在链接外部 a 块 尽管它仍然可以点击 但看起来很愚蠢 改变 a to display block or float left修复了这个问题 但有一个不良的情况not
  • 如何在 CSS 中使用 3 位颜色代码而不是 6 位颜色代码?

    我最近检查了我的 CSS 文件 并将所有六位十六进制代码转换为简单的三位数代码 例如 我的 FDFEFF被缩短为 FFF 它呈现的颜色与以前几乎完全相同 在我看来 中间部分相当无用 删除它们在我的 CSS 文件中节省了整整 300 个字节
  • 缩放对象上的弹跳动画

    拥有对象比例 然后在返回到原始比例因子之前以该比例因子执行弹跳动画的最佳方法是什么 我意识到我可以做一些事情 比如将其缩放到 2 2 然后 1 8 然后 2 0 但我正在寻找一种方法 您只需在比例因子上执行弹跳动画 因为我的比例因子会改变
  • 使用 CSS 网格布局跨越所有列/行的项目

    随着 CSS 网格布局模块很快在 Firefox 和 Chrome 中发布 我想我应该尝试了解如何使用它 我尝试用一 个项目创建一个简单的网格a跨越所有行的左侧 其他项目 b c d e等 跨越各个行的右侧 跨越行右侧的项目数量是可变的 因
  • 在CSS中重置Margins/Padding时使用*是错误的吗?

    应该避免以下内容 还是应该因其简单性而受到赞扬 作为记录 我在我构建的每个站点中都使用它 但我注意到它并不存在于许多主流 CSS 重置框架中 他们是否也不使用它 margin 0 padding 0 最好不要使用它 因为它会导致表单元素出现
  • 电子邮件通讯未正确呈现

    我是 CSS 和 HTML 新手 我有一个包含 HTML 和 CSS 代码的电子邮件模板 我在新闻通讯模板的右上角放置了一个粉色圆圈框 http www pedersenshotell se newsletter http www pede
  • 是否可以使 Font Awesome 图标大于“fa-5x”?

    我正在使用这个 HTML 代码 div class col lg 4 div class panel div class panel heading div class row div class col xs 3 i class fa f
  • HTML 和 CSS 的基本编码标准 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想知道它们是否是像 PSR 01 这样的 HTML 和 CSS 基本编码标准 我尝试谷歌搜索和搜索 但没有找到 我建议看看类似的东西
  • CSS 动画在 Internet Explorer 10 和 11 中不起作用

    以下 css 动画在 Chrome Mozilla Opera 浏览器中完美运行 但在 Internet Exporer 10 和 11 中不起作用 出了什么问题 请参见http jsfiddle net bm72w3n3 http jsf
  • CSS 中的 &::before、&::after 是什么? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想创建一个垂直时间线 然后我发现了这个页面 http cssdeck com labs oz2nu681 http cssdeck
  • CSS过渡div晃动

    为什么当我使用位置绝对和百分比宽度时 当我将鼠标悬停在上面的 div 上时会出现此故障 有例子 我在更复杂的网站上遇到了这个故障 div class box text div div class container div box widt
  • 是否可以使用纯 css 禁用 mat-tab 动画

    我想禁用 Angular Material mat tab 动画 内容滑入到位时发生的动画 我知道可以使用 disabled 属性 但我想知道是否可以使用纯 css 达到相同的效果 EDIT 我们的用户体验团队希望从材质选项卡中删除幻灯片动
  • contenteditable 在 safari 中不起作用,但在 chrome 中起作用

    我有一个奇怪的问题 这在 chrome 中按预期工作 但在 safari 中它只会发光 但不会对按键输入做出反应 这是触发文本版本的方法 var namebloc event currentTarget find column filena
  • IE8 底部:0 在位置:绝对的行为类似于位置:固定

    我有一个 DIV 必须始终位于页面的底部 左侧 类似于页脚菜单 div bottom menu position absolute z index 1 left 0 bottom 0 width 90 我的页面定义了最小高度 当用户将其缩小
  • 使图像宽度为父 div 的 100%,但不大于其自身宽度

    我试图让图像 动态放置 对尺寸没有限制 与其父 div 一样宽 但前提是该宽度不比 100 时其自身宽度宽 我已经尝试过这个 但没有成功 img width 100 height auto max width 100 其中许多图像比它们的父
  • 自动调整元素 (div) 大小以适合水平内容

    我尝试谷歌搜索 但没有得到太多结果 我正在构建一个水平轮播 它在浮动的 LI 中显示图像 我想解决的问题是 每次我向轮播添加缩略图 我是延迟加载 时 我都需要重新计算轮播的宽度 以便所有浮动缩略图很好地并排排列 其一 我宁愿不必在 JS 中
  • 如何在 Bootstrap 4 轮播中堆叠多个图像

    我不知道如何使用 Bootstrap 4 以及如何在一张幻灯片中显示多个小图像 例如缩略图 而不是让图像填充轮播的宽度 我已经使用下面的代码尝试了一些操作 但仍然无法堆叠很多图像 div class container h2 class t

随机推荐