文档中心 >Google PageSpeed

合并外部CSS

概览

合并外部样式表到尽可能少的文件可以减少网络往返时间,以及下载其他资源的延迟时间。

说明

“合并CSS”是通过单一的CSS文件替换多个不同的CSS文件,这个CSS含有它们所有的内容,以减少在页面刷新时浏览器的HTTP请求的数量。除了减少HTTP标头和通信的开销,这种方法对TCP / IP慢启动的效果也很好,增加了通过浏览器网络连接的有效比特率载荷。

像外部JavaScript一样,多个外部CSS文件会带来额外的网络往返开销。如果您的网站包含许多CSS文件,合并成更少的输出文件可以减少延迟。我们建议最多是3,最好是2个CSS文件。

在开发周期中常常使用许多不同的CSS文件是有道理的,然后捆绑这些CSS文件一起作为部署过程的一部分。请参阅下面的推荐方式区分您的文件,您还需要参考作为部署过程一部分的捆绑文件更新您的所有网页。

建议

划分文件的最佳方法

下面是合并CSS文件的一些规则:

  • 把CSS分为两个文件:一个包含渲染网页时启动所需要的最少代码,另一个包含的代码直到网页加载完成才需要。
  • 很少使用的CSS放到一个文件里,只有当有需要时才使用这个文件。
  • 对于不能缓存的CSS,考虑把它们嵌入到网页里。
  • 不要在CSS中使用 CSS @import规则,如果可能的话,把imported的CSS嵌入到主CSS文件里,或者在HTML里嵌入imported CSS。

在文档头中正确地放置CSS

以正确的顺序引用外部CSS是有好处的,这样能够并行下载。

操作

查找所有CSS<link>标签,如果多于一个则移除那些链接并用一个单独的<link>代替后嵌入文档,把它放到第一个CSS<link>的位置上。

例如,在HTML里这样:

<html>
  <head>
    <link rel="stylesheet" type="text/css" href="1.css">
    <link rel="stylesheet" type="text/css" href="2.css">
    <link rel="stylesheet" type="text/css" href="3.css">
    <link rel="stylesheet" type="text/css" href="4.css">
  </head>
  <body>
    <div class="blue yellow big bold">
      Hello, world!
    </div>
  </body>
</html>

合并CSS后,变成这样:

<html>
  <head>
    <link rel="stylesheet" type="text/css" href="1-2-3-4.css">
  </head>
  <body>
    <div class="blue yellow big bold">
      Hello, world!
    </div>
  </body>
</html>

本页面中的内容已获得知识共享署名3.0许可,并且代码示例已获得Apache 2.0许可;另有说明的情况除外。

文章源地址:https://developers.google.com/speed/pagespeed/module/filter-css-combine