制作css雪碧图
什么是CSS雪碧图
CSS雪碧图(CSS Sprite)是一种将多个小图标或图片合并到一张大图中的技术,通过CSS的background-position属性控制显示特定部分。这种技术可以减少HTTP请求次数,提升页面加载性能。
制作雪碧图的步骤
准备素材 收集需要合并的图标或图片,确保它们的尺寸相近或一致。建议使用PNG格式以保证透明背景效果。
合并图片 使用图像编辑工具(如Photoshop)或在线工具(如SpriteCow、Toptal Sprite Generator)将所有小图拼接为一张大图。排列时注意留白,避免图标重叠。
编写CSS代码
为每个小图定义CSS类,通过background-image引用合并后的大图,并用background-position调整显示位置。例如:
.icon-home {
width: 32px;
height: 32px;
background-image: url('sprite.png');
background-position: -0px -0px;
}
.icon-user {
width: 32px;
height: 32px;
background-image: url('sprite.png');
background-position: -32px -0px;
}
优化与维护

- 使用工具自动生成CSS代码(如Glue、Sass的Compass框架)。
- 为大图添加缓存头,提升重复访问性能。
- 后续新增图标时,直接在原大图尾部追加并更新CSS。
自动化工具推荐
- 在线工具:SpriteGen、CSS Sprites Generator。
- 开发工具:Webpack的
postcss-sprites插件、Gulp的gulp-sprite。 - 代码库:Sass/Compass的
@import "compass/utilities/sprites"。
注意事项
- 避免雪碧图过大,通常建议单张不超过200KB。
- 对高频变化的图标慎用雪碧图,避免频繁更新大图。
- 移动端考虑使用SVG Sprites替代位图雪碧图。






