SVG 超简洁简介(2025 版)
SVG 全称:Scalable Vector Graphics(可缩放矢量图形)
一句话总结:
SVG 就是用 XML 代码描述的矢量图,放大 100 倍依然丝滑不锯齿,文件通常比同等质量的 PNG/JPG 小得多。
为什么 2025 年还在大力推 SVG?
| 优点 | 具体表现 |
|---|---|
| 无损任意缩放 | 100px 的图标放大到 1000px 仍然清晰(完美适配 4K、8K、Retina 屏) |
| 文件超小 | 复杂图标通常只有几 KB(比 WebP/PNG 小 50%~90%) |
| 可直接用 CSS/JS 操作 | 改颜色、做动画、响应鼠标事件都一行代码搞定 |
| 文本可搜索、可选中 | 里面的文字搜索引擎能抓到,屏幕阅读器也能读 |
| 支持动画和滤镜 | 内置 SMIL + CSS 动画 + 强大的滤镜(模糊、辉光、3D 变形等) |
最简单的 SVG 示例(直接复制到 HTML 就能看到)
<!DOCTYPE html>
<html>
<body>
<!-- 行内 SVG:最常用方式 -->
<svg width="200" height="200" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
<circle cx="50" cy="50" r="40" fill="none" stroke="#0066ff" stroke-width="8"/>
<circle cx="50" cy="50" r="25" fill="#0066ff"/>
<path d="M35 45 Q50 70 65 45" stroke="white" stroke-width="6" fill="none"/>
</svg>
</body>
</html>
结果:一个笑脸 😄(蓝色圆形 + 眼睛 + 嘴)
常用嵌入方式(2025 年推荐顺序)
- 行内
<svg>→ 最灵活,能直接改颜色、动画 <img src="icon.svg">→ 最简单,缓存好- CSS background-image → 用来做图标、装饰
<object>或<iframe>→ 需要独立交互时用- Symbol + → 做现代图标系统(Icon Font 替代方案)
2025 年大家都在用的场景
- 网站/APP 所有图标(配合 Iconify 可达 20 万+ 图标)
- 数据可视化(ECharts、D3.js 默认输出 SVG)
- 动态图形、Loading 动画、交互地图
- 暗黑模式切换(一行 CSS 就改所有图标颜色)
- 生成海报、名片、PDF(后端直接输出 SVG)
一句话总结:
在现代前端里,只要是“图标、图表、动画、需要清晰缩放的图形”,2025 年默认首选就是 SVG。
需要我再给你发一个“30 秒看懂 SVG 核心语法”的对比图,或者直接发最常用的 50 个 SVG 图标源码包吗? 😄