DevToolPal
简

CSS 雪碧图生成器

把多个小图标合并成一张雪碧图 PNG,并生成每个图标对应的 CSS background-position 类。

本地处理,不上传

选项

原图倍率

图片 (0)

添加 PNG、SVG、GIF 或 JPG 图片。图片不会上传。

雪碧图

CSS

功能简介

CSS 雪碧图生成器把一组图标或小图合成一张雪碧图,并生成显示每张图所需的 CSS。添加 PNG、SVG、GIF 或 JPG 文件,选择排列方式,就能下载雪碧图 PNG 和样式表,每张图对应一个类名。

类名取自文件名:Home Icon.png 会变成 .icon-home-icon,重名时自动加序号。「紧凑」排列用装箱算法把不同尺寸的图片放进尽量小的画布;「纵向」「横向」「网格」则让位置更有规律。

使用方法

  1. 点「添加图片…」选择图标(也可以先用示例图标试试)。
  2. 选择「排列方式」和「间距」。留一点间距可以避免浏览器缩放时相邻图标互相渗色。
  3. 设置「类名前缀」,以及 background-image 里用到的「雪碧图文件名」。
  4. 如果原图是为视网膜屏按两倍尺寸画的,选「@2x」。
  5. 点「下载 PNG」和「下载 CSS」(也可以点「复制图片」把雪碧图直接粘贴到设计工具或聊天里),上传后这样使用:<span class="icon icon-home"></span>。

示例

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

.icon-home {
  width: 32px;
  height: 32px;
  background-position: 0 0;
}

小提示

  • 一起更新的图标放在同一张雪碧图里;重新生成后所有位置都会变化。
  • 需要用 CSS 改颜色的单色图标,用 SVG 图标或内联 SVG 可能更合适。

常见问题

› 什么是 CSS 雪碧图?

就是把很多小图合成一张大图。每个图标通过把这张图设为元素背景、再用 background-position 移动来显示,页面只需要一次请求,而不是几十次。

› 用了 HTTP/2 还需要雪碧图吗?

作用比以前小,但对大量小图标、邮件模板、游戏和老项目依然有用,还能避免图标一个个闪烁加载。

› @2x 选项是做什么的?

如果原图是按显示尺寸的两倍画的,CSS 会把宽高和位置都减半并加上 background-size,图标在高清屏上就很锐利。

› 我的图片会被上传吗?

不会。雪碧图在浏览器里用 canvas 绘制,CSS 也在本地生成。