加快页面加载速度的7条CSS优化技巧

在现代网络上,网站页面加载时间是最重要的指标之一。 即使是毫秒也会对您的底线产生巨大影响,而缓慢的页面加载很容易损害您的转换率。 您可以使用许多工具和技术来加快网站速度。 在本文中,我们将介绍可用于改善界面性能的最佳CSS优化技巧。

图片

译者注
一个重大的要求就是屈服于所指出的错误并报告它们。
谢谢啦

1.查找性能瓶颈


所有类型的优化中最重要的事情是从全面审核开始。 幸运的是,有许多CSS诊断工具可以帮助您发现性能瓶颈。 首先,您可以在浏览器中使用“开发人员工具”来检查数据加载的速度。 在大多数浏览器中,您可以按F12打开“开发人员工具”。

例如,在Firefox浏览器的“开发人员工具”中,您可以使用“网络”标签来找到页面上加载的所有CSS文件的大小和加载时间。 您还可以检查有无缓存的CSS文件加载速度。 由于此处显示了外部CSS,例如Google Fonts字体文件和从第三方CDN服务器下载的CSS文件,因此您可以找到许多以前甚至都不知道的来源

图片

Google的 Pingdom工具Lighthouse是开发人员经常用来分析网站速度和界面性能的另外两个免费工具。 例如,Pingdom Tools在运行简单的网站速度测试时为您提供了一些有用的CSS优化技巧。

图片

2.缩小并压缩CSS文件


大多数网站使用多个CSS文件。 尽管在大多数情况下,使用模块化CSS文件被认为是最好的解决方案,但是加载每个单独的文件可能需要一些时间。 但是出于这个原因,有一些用于压缩和压缩CSS的工具。 如果明智地使用它们,则可以大大减少页面加载时间。

有些在线服务(例如CSS Minify)使您可以通过简单地将CSS文件复制到简单形式中来使其最小化。 这种类型的服务可以很好地用于小型项目。 但是,在包含许多CSS文件的大型项目中,使用它们可能既麻烦又费时。 在这种情况下,最好优先考虑自动化解决方案。

如今,大多数构建工具都允许您自动压缩。 例如,默认情况下,Webpack将所有项目文件作为压缩包返回。 PostCSS还具有智能插件,例如CSS Nano ,不仅可以缩小文件的大小,还可以对它们执行许多特殊的优化。

图片

3.使用Flexbox和CSS网格


如果在编写CSS和使用margin,padding和float对齐页面上的元素时仍然只依靠传统的块模型,则应考虑切换到称为FlexboxCSS Grid的更高级的方法。 它们使您可以用更少的代码来实现复杂的布局。

使用旧方法,即使对于诸如垂直居中元素之类的简单事情,也将不得不使用许多技巧。 但是,这不适用于Flexbox和CSS网格。 尽管学习新方法可能要花一些时间,但值得这样做,因为CSS文件的大小会小得多。 对于Flexbox尤其如此,它目前具有非常好的浏览器支持(全球98.3%)。

图片

尽管浏览器不能很好地支持CSS Grid(全球占92.03%),但是如果您不需要支持较旧的浏览器或准备实现后备功能,则可以使用此方法。

图片

4.使用<link>标记代替@import规则


将CSS文件加载到网页中的主要方法有两种:

  1. 使用<link>标记将HTML页面添加到<head>部分
  2. 使用@import CSS声明从其他样式表导入

您需要在主CSS文件顶部添加@import 。 在大多数情况下,此方法用于加载较小的资源,例如字体和其他设计元素。 乍一看,这似乎是一个不错的解决方案,但是与HTML页面直接使用<link>标签直接加载样式表的情况相比,浏览器需要更多的时间来加载其他样式表。

当您将多个CSS文件添加到HTML页面时,请始终考虑CSS的特殊性。 从通用样式表开始,然后指定更具体的样式表。 您需要遵循此原则,因为以后添加的样式表会覆盖以前的CSS文件的规则。 以正确的顺序添加CSS文件的示例:

 <link rel="stylesheet" href="main.css"> <link rel="stylesheet" href="page.css"> <link rel="stylesheet" href="component.css"> 

5.使用渐变和SVG代替图像


在网页上上传所有图像可能很耗时。 为了减少此时间,开发人员使用了许多图像优化方法,例如从外部CDN加载图像或使用诸如TinyJPG之类的图像压缩工具。 这些解决方案可能会有很大帮助,但是在某些情况下,可以使用CSS效果来替换资源密集型JPG和PNG图像的使用。

例如,您可以使用渐变代替巨大的背景图像,这会稍微减慢页面访问者的浏览器速度。 您可以使用CSS渐变函数来创建线性,径向和重复渐变。 使用这些内置的CSS函数,您不仅可以指定颜色,还可以指定渐变的角度。

例如,以下规则创建了美丽的渐变背景,其加载速度比任何图像都要快:

 div { background: linear-gradient(45deg, lightgreen, royalblue); } 

对于更复杂的渐变和纹理,还可以使用CSSmatic (在下图中)和ColorZilla等生成器

图片

除渐变外,您还可以用可缩放矢量图形(SVG)替换传统的JPG和PNG图像。 它不仅加载速度更快,而且还只需要下载映像的一个版本。 这是由于以下事实:由于其矢量性质,SVG图像可以缩放到任意大小而不会降低质量。 此外,您还可以使用CSS设置SVG的样式,就像常规HTML文件一样。

6.避免遵守规则!


尽管!Important规则在某些情况下是真正的发现,但仅应将其作为最后的选择。 此规则从级联引发异常。 也就是说,当您添加!对CSS声明很重要时,它会覆盖任何其他声明,即使是更具体的声明。 这是它的语法:

 h1 { margin-bottom: 20px !important; } 

如果CSS中有很多重要规则,则用户的浏览器将不得不在代码中执行其他检查,这可能会进一步降低页面速度。 最好不要使用这种做法,这对于整个网站或创建主题或插件都很重要。 如果可能,仅在要从第三方库覆盖CSS的情况下使用此规则。

7. CSS重构


尽管重构CSS很少是一件容易的事,但通常它可以显着提高网站性能。 例如,当CSS文件太大或代码库过时,或者页面加载时间很差时,会严重影响转换。 CSS重构的目的是使您的代码更优雅,更易于维护和更快地加载。

CSS重构是一个多步骤的过程,您需要在其中分析CSS代码的各个方面。 您需要检查以下几点:

  • 是否有未使用或重复的CSS规则或资源
  • 是否可以使用更现代的技术,例如Flexbox和CSS Grid
  • 使用的特异性过多(可以使用视觉特异性计算器来计算
  • CSS文件的结构是否正确组织(例如,维护较小的文件比存储较大的文件更容易)
  • 开始使用自动构建工具是否值得
  • 还有更多。

在开始重构之前,请设置可衡​​量的目标并选择要遵循的准则,例如页面加载速度或第一个呈现内容的时间,以便您可以比较它们之前和之后的值。

还记得使用版本控制系统,例如Git。 在这种情况下,如果出现问题,您可以返回到以前的代码版本。

总结一下


您可以使用许多CSS优化技巧来改善网站的性能。 它们中的大多数易于实现,但会显着影响页面的加载时间。 更快的页面加载速度不仅可以提高可用性,还可以帮助您提高在Google和其他搜索引擎上的排名。

除了优化CSS的最佳做法之外,您还可以使用其他加载加速技术,例如缓存,Google AMP和HTTPS协议。 如果您想进一步了解它们,还可以查看我们的文章10步指南,以提高网站加载速度

Source: https://habr.com/ru/post/zh-CN459878/


All Articles