← 返回 SVG 模块

SVG 图标系统

学习如何创建可复用的 SVG 图标库和 sprite 系统。

📦 图标库

点击图标复制代码

尺寸:
home
heart
star
user
settings
search
mail
bell

🎯 SVG Sprite 系统

使用 <symbol> 和 <use> 创建可复用的图标系统

<!-- 1. 定义 sprite --> <svg style="display: none;"> <defs> <symbol id="icon-home" viewBox="0 0 24 24"> <path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/> </symbol> </defs> </svg> <!-- 2. 使用图标 --> <svg class="icon"> <use href="#icon-home"/> </svg>

📝 内联 SVG 图标

直接在 HTML 中使用 SVG 代码,便于样式控制

<svg width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> <circle cx="12" cy="12" r="10"/> <polyline points="12 6 12 12 16 14"/> </svg>

🎨 图标按钮示例

<button class="btn"> <svg width="20" height="20"> <use href="#icon-heart"/> </svg> <span>收藏</span> </button>

💡 关键知识点

  • symbol: 定义可复用的图标模板,不会直接渲染
  • use: 引用 symbol 或其他 SVG 元素
  • viewBox: 定义 SVG 的坐标系统和可视区域
  • currentColor: 使图标颜色继承父元素的文本颜色
  • sprite 优势: 减少 HTTP 请求,便于缓存和维护
  • 内联 SVG: 可以直接用 CSS 控制样式和动画
  • 外部 SVG: 使用 <img> 或 background-image 引入