CSS 雪碧图生成器

合并小图标,减少 HTTP 请求,加速网页加载

广告位 (Google AdSense)
图片管理
📁

点击或拖拽图片到这里

支持 PNG, JPG, WebP, SVG (可多选)

预览结果

生成后的雪碧图将在此显示

生成选项
2px
广告位 (Google AdSense)

什么是 CSS 雪碧图?为什么要使用它?

在 Web 性能优化的历史上, CSS 雪碧图(CSS Sprites) 是一项里程碑式的技术。简单来说,它将多个小图标或背景图合并到一张大图中,然后通过 CSS 的 background-imagebackground-position 属性来定位显示特定的部分。

1. 解决的具体问题:HTTP 请求瓶颈

在 HTTP/1.1 时代,浏览器对同一域名的并发请求数量有限制(通常为 6-8 个)。如果一个页面有 50 个小图标,浏览器需要分多批次请求,这会产生巨大的网络开销和延迟。

  • 减少连接数: 50 个请求变成 1 个请求,显著降低服务器压力。
  • 提升响应速度: 消除多次握手(Handshake)的时间消耗。
  • 体积优化: 单个合并后的图片通常比 50 个独立图片的体积总和更小,因为减少了重复的文件头信息。

2. 如何在现代开发中使用?

虽然 HTTP/2 引入了多路复用(Multiplexing),降低了多请求的惩罚,但雪碧图在某些场景下依然具有不可替代的优势:

  • 预加载优势: 一次性加载所有 UI 图标,避免用户在交互(如 Hover)时看到图片闪烁或空白。
  • 管理便捷: 对于不常更换的装饰性 UI 元素,统一管理比散落各处更容易维护。
  • 兼容性: 即使在极差的网络环境下,雪碧图也能保证 UI 的整体性。

3. 使用建议与技巧

在使用本工具生成代码后,建议为所有使用雪碧图的元素设置一个通用的基类:

.icon { 
  display: inline-block; 
  background-image: url('sprite.png'); 
  background-repeat: no-repeat; 
}

然后使用生成的特定类名(如 .icon-home )来控制位置。此外,对于 Retina 视网膜屏幕,建议生成 2 倍大小的雪碧图并使用 background-size 进行缩放。