SVG 优化器
优化并压缩 SVG 文件以减小体积。
将文件拖拽到这里 或点击选择
- 安全
- 处理在你的设备上完成,因此输入/输出不会发送到任何地方。
说明
分析 SVG 结构,在不影响渲染的范围内清理无用标记。通过展开样式、优化尺寸声明、精简属性以及简化数值和路径数据,在保持视觉质量的同时有效减小文件大小。
优化内容
| 样式 | 在可行范围内,将 <style> 中的 CSS 展开到各元素的 style 属性中。展开后还可能转换为 fill、stroke 等展示属性,并删除已经为空且不再需要的 <style> 元素。 |
|---|---|
| 尺寸 | 删除根 <svg> 元素中 style 内的 width / height 声明以及 width / height 属性,同时保留响应式显示所需的 viewBox。 |
| 属性 | 删除 Figma、Adobe XD、Illustrator 等设计工具添加的无用属性,例如 data-name。如果 id 和 class 未被引用,或因元素合并、转换(如从 <line> 转为 <path>)而不再需要,也可能被删除。 |
| 引用 | 检查 filter、clip-path、mask 等引用属性;若引用目标不存在则删除,有效且会影响显示效果的引用会被保留。 |
| 数值与路径 | 通过比较不同舍入精度(floatPrecision)下的渲染结果,自动选择视觉差异最小且体积最小的设置。同时简化 <path> 的 d 属性等路径数据,删除无用空格与冗余内容,并使用 multipass 重复优化,以尽可能减小文件大小。 |
| 兼容性 | 为避免显示异常,工具会保留 viewBox。SVG 包含 <text> 元素时,也会保留用于控制空格处理的 xml:space;若没有 <text>,则可能删除。对于含动画的 SVG,为避免破坏动画,会限制部分优化。难以内联的复杂 CSS 也可能被保留,以维持原始显示效果。 |
说明
文件缩减比例和最终输出会因 SVG 的结构及写法而异。对于复杂选择器、媒体查询等难以自动展开或内联的样式,为保证正确渲染,优化器可能会予以保留。
合并或转换元素(例如将 <line> 转为 <path>)时,如果原元素的 id 和 class 因结构变化而不再需要,可能会被删除。
当 filter、clip-path、mask 等引用属性的目标不存在时(例如失效的 url(#...) 引用),会自动删除这些属性,以保持 SVG 数据一致。
含 CSS 动画或 <animate> 标签的 SVG 也可以优化,但由于动画行为容易被破坏,部分优化会受到限制。如果 SVG 中包含脚本(JS),优化后可能出现非预期行为。