📜  SVG-图标(1)

📅  最后修改于: 2023-12-03 15:20:24.145000             🧑  作者: Mango

SVG 图标介绍

SVG (Scalable Vector Graphics) 是一种基于 XML 的图形格式,使用矢量图形描述,因此其图像可以无限放大而不会引起图像失真。而 SVG 图标则是采用 SVG 格式制作的图标,与传统的 PNG、JPEG 等栅格图标相比,SVG 图标具有以下优点:

  • 分辨率无关:SVG 图标是矢量图形,与分辨率无关,因此在不同分辨率的屏幕上显示时,SVG 图标依然保持清晰;
  • 可缩放:SVG 图标可以无限缩放而不失真,使其在不同尺寸的设备上都能够完美展现;
  • 矢量图形:SVG 图标是由路径、线条、形状等矢量图形组成,可以更容易地进行编辑和修改;
  • 支持动画效果:SVG 可以使用 CSS 或 JavaScript 实现图标的动画效果,增强用户体验。

下面介绍几种常见的 SVG 图标制作的方式和工具。

1. 手写代码

使用纯手写代码制作 SVG 图标是最原始的方式,需要对 SVG 路径和形状的绘制方法有一定的了解,具体语法可以参照 MDN 文档

以一个简单的扫帚图标为例:

<svg viewBox="0 0 24 24" width="24" height="24" xmlns="http://www.w3.org/2000/svg">
  <path d="M10.45,1.44l-.6,4.48a.42.42,0,0,0,.41.47H12.1c.14,1.06,1,1.86,2,1.86s1.88-.8,2-1.86h1.84a.42.42,0,0,0,.41-.47l-.6-4.48A1,1,0,0,0,17,0H7a1,1,0,0,0-.55,1.44ZM11.66,13.52l-3.95,3.94L2.11,12.29a1,1,0,0,0-.71-.29,1,1,0,0,0-.71.29l-.26.26a1,1,0,0,0,0,1.41l6.15,6.15a1,1,0,0,0,1.41,0l13-13a1,1,0,0,0,0-1.41L18.85,2.11a1,1,0,0,0-1.41,0L11.92,9.38,10.56,8A1,1,0,0,0,9.34,8.05l-1.78,2.64a.5.5,0,0,0,.42.76h5.53A.5.5,0,0,1,13.1,12a.5.5,0,0,1-.5.5H8.42a.51.51,0,0,0-.42.23,1,1,0,0,1-1.6,0l-1.78-2.64a1,1,0,0,0-.83-.43H.5a.49.49,0,0,0-.5.5.5.5,0,0,0,.5.5H1.64C2.32,12,3,12.54,3.49,13.3s.79,1.88,1.56,2.27a3.25,3.25,0,0,0,2.8,0,3.06,3.06,0,0,0,.84-.55c.77-.39,1.08-1.09,1.07-1.92L11.37,8.56Z"/>
</svg>

其中 viewBox 属性表示 SVG 视口的尺寸,详见 MDN 文档

2. 使用图形编辑软件制作

使用图形编辑软件(如 Adobe Illustrator)可以更方便地制作 SVG 图标,可以直观地进行路径和形状的编辑和调整。

以同样的扫帚图标为例:

扫帚图标的 Adobe Illustrator 设计

在导出 SVG 时需要注意以下几点:

  • SVG Export 选项中的 CSS Properties 最好选择 Presentation Attributes,否则可能出现样式丢失等问题;
  • 不需要的 path 可以删除掉,以减小 SVG 的体积;
  • 若要保留图标的填充色和边框色等样式,需要将样式转化为内联 CSS,否则可能会出现颜色异常的问题。
3. 使用在线 SVG 图标制作工具

除了手写代码和图形编辑软件外,还可以使用一些在线 SVG 图标制作工具,例如:

这些工具能够快速制作简单的 SVG 图标,并且具有丰富的预设形状和图标库,也支持导入其他图形格式的图标进行编辑。

例如,使用 iconsvg.xyz 制作一个文件夹图标:

文件夹图标的 iconsvg.xyz 绘制界面

导出的 SVG 代码片段如下:

<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
  <path d="M12 3L14 3C14.5304 3 14.9208 3.42085 14.9933 3.93934L15 4L15 5H19C19.5304 5 19.9208 5.42085 19.9933 5.93934L20 6V18C20 19.1046 19.1046 20 18 20H6C4.89543 20 4 19.1046 4 18V6C4 4.89543 4.89543 4 6 4H10L10 3L12 3ZM14 5L10 5L10 6L12 6C12.5523 6 13 6.44772 13 7C13 7.55228 12.5523 8 12 8L8 8C7.44772 8 7 7.55228 7 7C7 6.44772 7.44772 6 8 6L9 6L9 5H5V18C5 18.5523 5.44772 19 6 19H18C18.5523 19 19 18.5523 19 18V6L15 6C14.4477 6 14 5.55228 14 5Z"/>
</svg>
4. SVG 图标库推荐

如果需要使用一些常见的 SVG 图标,可以使用以下一些优质的 SVG 图标库:

这些图标库都有大量的高质量 SVG 图标可供选择,可以极大地提高开发效率。

总结

本篇介绍了 SVG 图标的定义、特点、制作方式和常用的 SVG 图标库。在实际开发中,SVG 图标能够给用户带来更好的视觉效果和体验,也方便了开发人员进行图标的编辑和分配。建议开发人员在实际项目中尽可能地采用 SVG 图标。