随着前端开发的不断迅猛发展,不同的开发者们也不断地在探索和研究一些新的技术工具,以优化他们的工作流程。其中,img-spritesmith
就是这样一个优秀的 npm 包,它能够大大地提升前端工程师的开发效率。 本文我们将为大家详细介绍 img-spritesmith
的使用教程和一些注意事项。
什么是 img-spritesmith?
img-spritesmith
是一个 npm 包,它可以帮助开发者快速生成雪碧图。雪碧图(Sprite)指的是将多张小图标合并为一张大图,通过CSS background定位来显示需要显示的 icon。通过这种方式,可以减少浏览器同时加载的图片数量,从而达到加速页面加载速度的效果。img-spritesmith
的最大优势在于它能够自动生成样式文件,为开发者节省了手工编写样式的时间。
安装img-spritesmith
使用 npm 安装 img-spritesmith:
npm i img-spritesmith -D
如果你用的是 yarn,那么使用下面的命令安装 img-spritesmith:
yarn add img-spritesmith -D
使用说明
在使用 img-spritesmith
的过程中,我们使用到的主要是一个 spritesmith
函数,它会将我们的所有小图标合成到一张大图上。
第一步:准备图标
在使用前我们需要准备一些个小图标,建议文件名中使用数字进行排序。img-spritesmith
不要求图标的格式,支持 .png
、.jpg
、.jpeg
、.gif
等格式,只需要确保图片大小小于 2048 * 2048 像素。
第二步:用 gulp.js 配合 img-spritesmith
img-spritesmith
可以和各种流程工具很好的配合使用,常常用 gulp.js
配合使用。
安装 gulp.js
:
npm install gulp -g
在全局安装gulp之后,我们需要在项目中安装 gulp.spritesmith
包。
npm install gulp.spritesmith -D
然后,我们在项目中采用如下配置:
-- -------------------- ---- ------- ----- ----------- - ---------------------------- ----- ---- - ---------------- ------------------- -- -- - ------ ---- ------------------------------------- ------ ------------- -------- ------------- -------- ------------- -------- -- -- - -------------------------- ---
在命令窗口中输入:
gulp sprite
等待运行成功后,我们可以在 build
文件夹中找到我们合成的雪碧图以及生成的样式文件。打开样式文件 sprite.css
我们可以看到类似如下的代码:
-- -------------------- ---- ------- ------- - ------ ----- ------- ----- ----------------- ---------------- -------------------- - -- ---------------- ----- ------ - ------- - ------ ----- ------- ----- -------------------- ----- ------ - ------- - ------ ----- ------- ----- -------------------- ----- ------ - ------- - ------ ----- ------- ----- -------------------- ------ ------ - ---
.sprite
是新生成的类名,而 .icon-1
, .icon-2
, .icon-3
... 等是我们之前准备的图标的类名。如果你采用 <i>
标签或者 <span>
标签来展示图标,可以采用类似如下的 CSS 样式:
-- -------------------- ---- ------- - - -------- ------------- --------------- ------- - ----------------- - -------- --- -------- ------------- -------------------- ----- ------ ------ ----- ------- ----- --------- --------- ---- ----- ----- ---- -
其中 .icon-home
中的 home
就是之前我们在样式表中定义的类名(icon-home
)中的一部分。
配置说明
对于 gulp.spritesmith
中使用的基本配置如下所示:
-- -------------------- ---- ------- ------------------- -- -- - ---- ---------------------------- -- ---------- ------ ------------- -------- ------------- -- ---------------- -------- -------------------- -- --------------------------------------------------- -------- ------------- -- ----------------- ---------- ------ -- --- --- ------ ------ ---------- -------- -- - ----------- - ---------------------- -- -- -------------------- ------- -------- -- -- ----------- - -------- - -- --- ------- ----------------- - ------ ----------- -- -- -- - -------------------------- ---
需要注意的是,所有的选项都是可选的,如果你不传递任何选项,img-spritesmith
会自动使用默认选项来生成你的雪碧图和CSS文件。
注意事项
在使用 img-spritesmith
的过程中,有一些需要注意的事项。主要包括以下几点:
img-spritesmith
不会检查是否有重复的文件名。如果你的文件名重复了,最后生成的样式文件只会为最后一个文件保存类名。img-spritesmith
在生成雪碧图时并不会进行图片压缩,但可以通过在配置中使用某些插件来完成这项工作。- 在生成的 CSS 样式文件中,类名的前缀默认是空的。但是,我们在实际应用时,往往会加上一些 class 的前缀,来和项目的其他样式做区分。
- 没有必要在 CSS 样式中手动设置宽度和高度。它们已经在样式文件中处理好了。
总结
img-spritesmith
是一款非常实用且方便的工具,在编写CSS样式表时生成的雪碧图和样式表非常方便。希望本文介绍的内容对大家有所帮助。大家可以在实际开发过程中尝试使用一下,期待你能在日常开发中以更优美的代码编写方式来实现你的工作。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005599481e8991b448d72a0