如何在 Tailwind CSS 中使用字体图标和 SVG 图标

阅读时长 7 分钟读完

在前端开发中,我们经常需要使用各种图标,例如将一些功能按钮、操作按钮或者菜单项用不同的图标来区分,从而提高用户的交互体验。如今,使用图标的方式也非常多,其中比较常用的包括字体图标和 SVG 图标。在这篇文章中,我将向大家介绍如何在 Tailwind CSS 中使用这两种类型的图标。

什么是字体图标

字体图标通常是一组字符,其中每个字符对应一个图标。这些图标使用 CSS 的方式来调整大小、颜色等,同时还支持矢量缩放和旋转。相比传统的图片图标,字体图标的优点在于:

  1. 可以减少 HTTP 请求,因为所有图标都可以通过一次加载字体来实现;
  2. 可以轻松更改大小、颜色、旋转等效果,而无需重新加载图标;
  3. 可以直接使用样式类来改变图标,而不必使用 CSS 来调整图片的位置。

什么是 SVG 图标

SVG,全称为 Scalable Vector Graphics,即“可缩放向量图形”,它是一种描述二维图形和绘图程序的 XML 格式,使用 XML 语言来描述图形的形状、颜色、以及渐变等特征。相较于传统的位图图像,SVG 图像的优点在于:

  1. 图像本身是矢量形式描述的,可以根据需要无限放大或缩小,不会失去图像清晰度;
  2. 图像文件的体积较小,节省了存储空间,便于网络传输和加载。
  3. 可以使用 CSS 属性改变 SVG 图像的样式和效果,动态调整 SVG 图像的颜色、大小、位置等参数。

如何在 Tailwind CSS 中使用字体图标

在 Tailwind CSS 中使用字体图标,我们可以使用 FontAwesome 或者 Material Design Icons 两个库。这两款库都提供了丰富的图标资源,可以满足绝大多数需求。

在使用字体图标之前,需要先在 HTML head 中引入相应的 CSS 文件,以及在项目中安装好相关的库。

安装 FontAwesome 库:

安装 Mater Design Icons 库:

下面我们分别以FontAwesome和Material Design Icons两个库为例,介绍如何在 Tailwind CSS 中使用字体图标。

在 Tailwind CSS 中使用 FontAwesome

FontAwesome库使用十分简单,我们只需要在 HTML 节点上使用对应的 class 名称即可,例如:

其中,fas 是 FontAwesome 中的一个内置类名,表示“Fixed Width(定宽)”,用于支持定宽的字体图标排版。fa-times 则是 FontAwesome 中表示关闭图标的一个标识符。

当然,FontAwesome 还提供了其他的类名用于便捷地调整图标的大小、颜色等样式,这里就不一一赘述了。更多关于FontAwesome的信息,可以参考官方文档:https://fontawesome.com/v5.15/how-to-use/on-the-web/using-with/tailwind-css

在 Tailwind CSS 中使用 Material Design Icons

Material Design Icons 是谷歌推出的一款图标库,与 FontAwesome 类似,这里我们只需要使用对应的 class 名称即可将图标引用到对应的 HTML 节点上。例如:

其中,mdi 表示 Material Design Icons 中的一个内置类名,表示“Material Design Icons”,md-account 则是 Material Design Icons 中表示账户图标的一个标识符。

与 FontAwesome 类似,Material Design Icons 也提供了其他的类名,以便快捷地调整图标的大小、颜色等样式。更多关于 Material Design Icons 的信息,可以参考官方文档:https://dev.materialdesignicons.com/getting-started/webfont

如何在 Tailwind CSS 中使用 SVG 图标

除了使用字体图标之外,我们还可以在 Tailwind CSS 中使用 SVG 图标。原则上来说,只需要将 SVG 图标放置到项目中,并在 HTML 中使用 <svg> 标签引用即可,但我们在 Tailwind CSS 中还可以使用内置类名以及对应的类名来对 SVG 图标进行样式控制。

首先,我们需要在项目中将 SVG 图标存放在某个文件夹中,例如 img 文件夹。然后,在 HTML 文件中使用 <svg> 标签即可引用 SVG 图标:

其中,w-6 和 h-6 分别用于控制 SVG 图标的宽度和高度,同时还可以在 <svg> 标签上使用 fill 来控制 SVG 图标的填充颜色。use 标签中的 xlink:href 属性用于指定 SVG 文件路径以及具体的图标 ID,#icon-search 则表示在 icons.svg 文件中,我们要引用 ID 为 icon-search 的图标。

值得注意的是, Tailwind CSS 默认情况下只支持在 <svg> 标签上使用一组内置类名,例如 w-6、h-6,以及 fill-current,而不支持在 <use> 标签上使用相应的类名。如果我们需要在 <use> 标签上使用其他的 Tailwind 类名,需要通过配置 tailwind.config.js 文件来实现,具体方法如下:

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

在添加了这个配置之后,我们就可以在 <use> 标签上使用 Tailwind CSS 的类名了:

其中,icon 是我们在配置文件中添加的一个类名,表示所有的 SVG 图标都具备的样式,fill-green 则是 Tailwind CSS 中支持的内置类名,用于调整 SVG 图标的填充颜色。

总结

本文介绍了如何在 Tailwind CSS 中使用字体图标和 SVG 图标两种类型的图标。其中,字体图标简单易用,但是资源相对固定;SVG 图标则更加灵活,但需要配置一些 Tailwind 类名才能快速调整样式。希望本文能够帮助到大家,提高前端开发的效率和质量。

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

纠错
反馈