目录
提升网页性能:内联关键 CSS 的策略与技巧
首页 web前端 css教程 如何以及为什么要介绍您的关键CSS

如何以及为什么要介绍您的关键CSS

Feb 20, 2025 am 11:52 AM

提升网页性能:内联关键 CSS 的策略与技巧

本文探讨内联关键 CSS(将 CSS 规则直接嵌入 HTML 文档)以优化网站性能的方法。通过内联关键 CSS,可以显着加快网页渲染速度,尤其能提升首屏内容的加载速度,避免因额外 HTTP 请求获取外部 CSS 文件而导致的渲染延迟。

How and Why You Should Inline Your Critical CSS

关键要点:

  • 精准识别关键 CSS: 关键 CSS 指的是渲染首屏内容所需的最小 CSS 代码。这因页面而异,需要借助工具(如 Google PageSpeed Insights、Critical Path CSS Generator 和 Penthouse.js)进行识别和提取。
  • 权衡利弊: 内联关键 CSS 可提升加载速度,但也会增加 HTML 文档大小,并可能导致代码冗余(尤其当相同 CSS 规则在多个页面重复使用时)。因此,务必确保内联的 CSS 确实对网页至关重要。
  • 自动化工具: Grunt、npm 模块(如Critical)、Gulp,以及WordPress 插件(如Autoptimize、Above The Fold Optimization 和W3 Total Cache)等工具能自动化识别、提取和内联关键CSS,简化操作流程。

How and Why You Should Inline Your Critical CSS

互联网早期,网站主要展示文本信息。随着网速提升,用户能够快速下载高清图片和视频,网站功能也日益复杂,使用了各种 CSS 和 JavaScript 框架、插件等。加载所有必要文件需要时间,而更快的网站能带来更好的用户体验,这对于网站成功至关重要。内联关键 CSS 并异步加载非关键 CSS 是提升性能的关键策略。

什么是关键 CSS?

关键 CSS 指的是用于样式化网页首屏内容(用户首先看到的部分,包括导航和其他元素)的 CSS 代码。快速渲染首屏内容至关重要。

需要注意的是,用户使用各种设备和视窗访问网站,因此,仅考虑首屏内容不足以解决所有问题。应将与基本布局和排版相关的 CSS 也视为关键 CSS。

现代 Web 开发实践建议内联关键 CSS,例如:

<!DOCTYPE html>
<html>
<head>
  <title>优化后的网页</title>
  <style type="text/css">
    /* 你的最小化关键 CSS 代码 */
  </style>
</head>
<body>
  <!-- 你的标记 -->
</body>
</html>
登录后复制

为什么需要内联?

Google PageSpeed Insights 等工具可能会提示优化 CSS 加载,建议内联关键 CSS 并异步加载阻塞渲染的样式表。

浏览器只有加载所有 CSS 文件后才会渲染网页首屏内容。当需要加载大量文件时,这会成为一个瓶颈。并非所有用户都拥有高速网络连接,在内容加载完毕前等待库、CSS 和 JavaScript 加载会非常令人沮丧。即使是高速网络用户,也可能在某些情况下(例如穿过隧道)失去连接。如果网站内联了关键 CSS 并且在显示主要内容之前不加载其他文件,那么即使在连接中断的情况下,用户仍然能够访问主要内容。

下图展示了普通网页和优化网页的区别:优化版本可让用户提前约 0.5 秒访问内容。当需要加载大量额外库时,改进将更加明显。

How and Why You Should Inline Your Critical CSS

是否应该内联关键 CSS?

这取决于具体情况。如果未使用任何大型框架或库,并且自己的 CSS 文件大小也较小,则可能不需要内联 CSS。

如果使用 Bootstrap 等框架,可能并未用到框架的所有功能。在这种情况下,可以仅从框架样式表中提取关键 CSS,并异步加载实际框架。这将显著提高网站速度。

内联样式表可以被缓存,而 HTML 通常不会被缓存(通常不建议这样做!)。这意味着两者之间有时会有差异。在进行更新时请记住这一点!此外,每次用户加载网站时,内联 CSS 都会导致页面大小增加。例如,如果网站每个页面都有 30kB 的内联 CSS,那么单个用户 10 次页面浏览将消耗 300kB。这听起来可能不算什么大问题,但在世界某些地区(以及某些 3G/4G 数据计划中),数据是昂贵的。确保你计划内联的 CSS 确实对你的网页至关重要,并且不要内联所有内容。

(以下内容与原文类似,为了避免重复,此处省略了关于如何查找关键CSS,使用Grunt、npm模块、Gulp以及其他工具的详细步骤,以及最后的FAQ部分。 这些内容可以通过原文找到。)

总结

是否内联关键 CSS 取决于用户的访问模式和网站结构。如果你的网站是一个单页网站,访问者不会频繁访问它,或者如果你有一个包含框架和插件的复杂网站,内联关键 CSS 可以显著提高性能。

内联 CSS 的唯一顾虑是它会增加每次访问的页面大小。这可以通过使用 Cookie 来缓解,只在第一次访问时发送关键 CSS,同时仍然异步加载完整的 CSS 文件并对其进行缓存。这有点复杂,但你可以同时获得两全其美的效果。

以上是如何以及为什么要介绍您的关键CSS的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

VUE 3 VUE 3 Apr 02, 2025 pm 06:32 PM

它的出局!恭喜Vue团队完成了完成,我知道这是一项巨大的努力,而且很长时间。所有新文档也是如此。

在CI/CD上有点 在CI/CD上有点 Apr 02, 2025 pm 06:21 PM

我说的“网站”比“移动应用程序”更合适,但我喜欢Max Lynch的框架:

您可以从浏览器获得有效的CSS属性值吗? 您可以从浏览器获得有效的CSS属性值吗? Apr 02, 2025 pm 06:17 PM

我有人写了这个非常合法的问题。 Lea只是在博客上介绍了如何从浏览器中获得有效的CSS属性。那样的是这样。

在WordPress块编辑器中使用Markdown和本地化 在WordPress块编辑器中使用Markdown和本地化 Apr 02, 2025 am 04:27 AM

如果我们需要直接在WordPress编辑器中向用户显示文档,那么最佳方法是什么?

带有粘性定位的堆叠卡和一点点的杂物 带有粘性定位的堆叠卡和一点点的杂物 Apr 03, 2025 am 10:30 AM

前几天,我发现了科里·金尼文(Corey Ginnivan)网站上的这一点,当您滚动时,彼此之间的卡片堆放集。

比较浏览器的响应式设计 比较浏览器的响应式设计 Apr 02, 2025 pm 06:25 PM

这些桌面应用程序中有许多目标是同时在不同的维度上显示您的网站。因此,例如,您可以写作

如何将CSS网格用于粘头和页脚 如何将CSS网格用于粘头和页脚 Apr 02, 2025 pm 06:29 PM

CSS网格是一系列属性的集合,旨在使布局比以往任何时候都容易。像任何东西一样,那里有一点学习曲线,但是网格是

Google字体可变字体 Google字体可变字体 Apr 09, 2025 am 10:42 AM

我看到Google字体推出了新设计(Tweet)。与上一次大型重新设计相比,这感觉更加迭代。我几乎无法分辨出区别

See all articles