css sprites制作
CSS Sprites 制作方法
CSS Sprites 是一种将多个小图标或图片合并到一张大图中,通过 CSS 背景定位来显示特定部分的技术,可以减少 HTTP 请求,提升页面加载速度。
准备图片素材
收集需要合并的小图标或图片,确保它们的尺寸相近或风格统一。可以使用设计工具(如 Photoshop、GIMP 或在线工具)将这些图片排列到一张大图中,并保存为 PNG 或 JPG 格式。
合并图片
将多张小图合并到一张大图中,确保每张小图之间有足够的间距以避免显示错误。可以使用以下工具自动化处理:
![]()
- 在线工具:SpriteCow、CSS Sprite Generator
- 命令行工具:ImageMagick
- 设计软件手动拼接
编写 CSS 代码
通过 background-position 属性定位大图中的小图。假设大图名为 sprites.png,包含两个 32x32 的图标:
.icon {
background-image: url('sprites.png');
width: 32px;
height: 32px;
display: inline-block;
}
.icon-home {
background-position: 0 0;
}
.icon-settings {
background-position: -32px 0;
}
使用 Sprites
在 HTML 中通过类名调用对应的图标:
![]()
<span class="icon icon-home"></span>
<span class="icon icon-settings"></span>
优化间距
确保大图中每个小图之间有足够的间距(通常 2-5 像素),避免因浏览器渲染误差导致相邻图片部分显示。
响应式适配
如果需要适配不同分辨率,可以使用 background-size 属性缩放 Sprites 图:
.icon {
background-size: 64px 32px; /* 原始大图尺寸的一半 */
}
自动化工具
使用构建工具(如 Webpack、Gulp)的插件(如 gulp.spritesmith)自动化生成 Sprites 图和对应的 CSS 代码。
注意事项
- 避免合并过大的图片,否则可能影响性能。
- 对需要频繁变化的图片谨慎使用 Sprites,因为每次更新都需要重新生成大图。
- 为 Retina 屏幕准备高分辨率 Sprites 图时,需调整
background-size和定位值。






