CSS Sprites

问题的提出

网页中通常会包含大量小尺寸的图标、背景、装饰性图片等,由于http1.1协议的局限,这通常会给WEB服务器带来并发性问题和流量负担

  • 每个图片都包含有图片头等元信息,如拍摄时间、地点等无用信息
  • 每个图片都占用一个http连接,都需要重复的http头信息
  • http1.1协议默认支持的并发连接数量有限
    • http2.0中已无此限制

可以通过浏览器的开发者工具的network面板,查看当前网页的http连接数

简单的打个比方,就相当于你在网上买了一台电脑,商家不是把一台整机用一个快递发给你,而是拆分成 N 个邮包多次快递给你,显然后一种方式成本高,速度慢。

解决方案: css sprites

假设在网页中需要在四个分开的位置分别显示如下四张图片

四张独立的图片

注意这是四张独立的图片,意味着四个<img>元素和四个http请求链接

为了节约网络流量,先将上述四张图片合成为一张图片。然后在显示时,通过CSS的背景定位指令,分别仅仅显示这张图片的某一部分(四分之一部分)

一张合成后的图片

css sprites 示例

Export
HTML
Result

CSS Sprites 及工具

以上这种技术就称之为: css sprites,直译为CSS精灵或雪碧图。通常被解释为“CSS图像拼合”或“CSS贴图定位”

使用sprites技术需要拼接图片、计算显示座标和编写css代码,比较麻烦,下面的工具可以简化这些工作

注意:部分工具只能接受和处理 jpg/png 图片类型

参考

深入阅读

results matching ""

    No results matching ""