第 08 课:自动生成雪碧图

20 篇文章 0 订阅 ¥49.90 ¥99.00

背景

在开发过程中,可能存在大量的小图片和小图标,虽然每张图的尺寸不大,但每次都需要发起一次 HTTP 请求,从性能优化的角度来说是不合理的。常见的做法是我们将多个小图片拼成一张大图(前端界叫做雪碧图或 CSS Sprite),然后通过 CSS 的 background-position 来控制图片的展示,这样可以极大减少 HTTP 请求次数。我们可以手动拼装雪碧图,但这样效率实在太低。本节课程将介绍如何在项目中通过自动化的方式生成雪碧图。

1 雪碧图生成的方式

目前常用的自动化方式有两种。

一种是预处理的方式,通过 webpack-spritesmith 提前将图片合成雪碧图,并生成对应的样式文件。其优点是所有的样式数据已经帮开发者生成好,开发者只需要引入样式即可,使用起来非常方便。缺点是所有的图片都合并到一个大图中,页面间有耦合。

另一种是后处理的方式。通过 postcss-sprite 对 CSS 文件进行分析,将 CSS 中包含的图片收集后合并成雪碧图再替换 CSS 中的代码。其优点是 CSS 中有哪些图片就合并哪些,不会把没用到的图片也合并进去。一张 CSS 样式表对应一张雪碧图。缺点是开发者需要手动去测量每张小图的尺寸。

两种方式各有所长,本教程中将选用预处理的方式生成雪碧图。

2 安装 webpack-spritesmith

首先本地安装开发依赖 webpack-spritesmith:

npm install -D webpack-spritesmith

3 配置

安装完成后,更新 webpack.config.js:

//...省略其他代码
const SpritesmithPlugin = requir
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值