使用 css-sprite 实现 CSS 精灵图

阅读时长 5 分钟读完

CSS 精灵图是使用多个小图片组成一张大图片的技术。使用 css-sprite npm 包可以方便的实现 CSS 精灵图。本文将介绍如何使用 css-sprite,在项目中实现 CSS 精灵图。

安装 css-sprite

使用 npm 安装 css-sprite:

创建图片合并器

合并图片并生成 CSS 的步骤需要指定一些配置项,我们可以先创建一个图片合并器(sprite.js)来完成这个工作:

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

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

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

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

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

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

此处的 sprite.js 接收两个参数,第一个参数为图片路径列表,第二个参数为输出图片的路径。该合并器是基于 Spritesmith 实现的,并在输出时使用 fs 模块将图片二进制数据写入到本地文件。

使用图片合并器

在项目中使用图片合并器非常简单,只需调用该合并器并指定需要合并的图片路径即可。如下所示,将多张图片合并成一张精灵图:

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

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

使用该脚本执行后,会在 dist/images/ 目录下生成 sprite.png,该图片就是我们所需的 CSS 精灵图。

生成 CSS 代码

接下来,我们需要生成精灵图对应的 CSS 代码。使用 css-sprite 生成 CSS 代码非常方便,只需调用其官方提供的样式生成器即可:

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

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

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

使用该脚本执行后,会在 dist/css/ 目录下生成 sprite.css 文件,其中包含了精灵图每个小图标对应的 CSS 样式。

引入精灵图并使用 CSS 样式

在 HTML 中引入精灵图的方式和引入普通图片一样,只需在图片的 src 属性中指定路径即可:

在 CSS 中使用精灵图的样式为:

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

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

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

在 HTML 中使用 CSS 样式的方式和其他样式一样,只需在元素的 class 属性中指定样式名称即可:

总结

在本文中,我们介绍了如何使用 css-sprite npm 包来生成 CSS 精灵图。通过上述脚本,我们可以将多个小图片合并成一张大图片,并使用 css-sprite 提供的样式生成器生成 CSS 样式。使用 CSS 样式集成的精灵图可以极大地优化页面加载速度和性能表现,是前端开发中不可或缺的技术。

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

纠错
反馈