npm 包 img-spritesmith 使用教程

阅读时长 6 分钟读完

随着前端开发的不断迅猛发展,不同的开发者们也不断地在探索和研究一些新的技术工具,以优化他们的工作流程。其中,img-spritesmith 就是这样一个优秀的 npm 包,它能够大大地提升前端工程师的开发效率。 本文我们将为大家详细介绍 img-spritesmith 的使用教程和一些注意事项。

什么是 img-spritesmith?

img-spritesmith 是一个 npm 包,它可以帮助开发者快速生成雪碧图。雪碧图(Sprite)指的是将多张小图标合并为一张大图,通过CSS background定位来显示需要显示的 icon。通过这种方式,可以减少浏览器同时加载的图片数量,从而达到加速页面加载速度的效果。img-spritesmith 的最大优势在于它能够自动生成样式文件,为开发者节省了手工编写样式的时间。

安装img-spritesmith

使用 npm 安装 img-spritesmith:

如果你用的是 yarn,那么使用下面的命令安装 img-spritesmith:

使用说明

在使用 img-spritesmith 的过程中,我们使用到的主要是一个 spritesmith 函数,它会将我们的所有小图标合成到一张大图上。

第一步:准备图标

在使用前我们需要准备一些个小图标,建议文件名中使用数字进行排序。img-spritesmith 不要求图标的格式,支持 .png.jpg.jpeg.gif 等格式,只需要确保图片大小小于 2048 * 2048 像素。

第二步:用 gulp.js 配合 img-spritesmith

img-spritesmith 可以和各种流程工具很好的配合使用,常常用 gulp.js 配合使用。

安装 gulp.js

在全局安装gulp之后,我们需要在项目中安装 gulp.spritesmith 包。

然后,我们在项目中采用如下配置:

-- -------------------- ---- -------
----- ----------- - ----------------------------
----- ---- - ----------------

------------------- -- -- -
  ------ ----
    -------------------------------------
    ------
      -------------
        -------- -------------
        -------- -------------
        -------- --
      --
    -
    --------------------------
---

在命令窗口中输入:

等待运行成功后,我们可以在 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 的过程中,有一些需要注意的事项。主要包括以下几点:

  1. img-spritesmith 不会检查是否有重复的文件名。如果你的文件名重复了,最后生成的样式文件只会为最后一个文件保存类名。
  2. img-spritesmith 在生成雪碧图时并不会进行图片压缩,但可以通过在配置中使用某些插件来完成这项工作。
  3. 在生成的 CSS 样式文件中,类名的前缀默认是空的。但是,我们在实际应用时,往往会加上一些 class 的前缀,来和项目的其他样式做区分。
  4. 没有必要在 CSS 样式中手动设置宽度和高度。它们已经在样式文件中处理好了。

总结

img-spritesmith 是一款非常实用且方便的工具,在编写CSS样式表时生成的雪碧图和样式表非常方便。希望本文介绍的内容对大家有所帮助。大家可以在实际开发过程中尝试使用一下,期待你能在日常开发中以更优美的代码编写方式来实现你的工作。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005599481e8991b448d72a0

纠错
反馈