0
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <defs></defs>
    <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="icons" transform="translate(-368.000000, -426.000000)">
            <g id="attention-blue" transform="translate(368.000000, 426.000000)">
                <circle id="Oval-13" fill="#34C6D9" cx="10" cy="10" r="10"></circle>
                <path d="M10,10.8 L10,5.6" id="Line" stroke="#FFFFFF" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"></path>
                <path d="M10,14.8 L10,14.8" id="Line2" stroke="#FFFFFF" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"></path>
            </g>
        </g>
    </g>
</svg>

我有带有两个“路径”标签的 SVG 图标。使用 imagemin.svgo imagemin 构建后,删除此“路径”之一,我的图标看起来很糟糕。我怎样才能解决这个问题?

gimagemin.svgo({
    plugins: [
      {minifyStyles: false},
      { removeViewBox: false },
      { removeUselessStrokeAndFill: false },
      { cleanupIDs: false }
        ]
  })

这是我的选择。

4

1 回答 1

0

实际上,SVGO 并没有删除第二个路径,它会将它合并到第一个路径中(这是由默认启用的“mergePath”插件完成的)。但是,由于第二条路径的长度为零,SVGO 删除了“lineto”(“L10,14.8”)命令(“convertPathData”插件执行此操作),因此它简化为无用的“moveto”(M10 14.8)命令。

我建议不要以这种风格绘制图像。您可以使用另一种,或在带有圆弧曲线<circle>的路径中画一个圆。

当然,你可以为这个特定的图像禁用“convertPathData”插件,但我不推荐它作为通用解决方案,因为它是基本的优化插件之一。

于 2017-09-14T17:55:45.883 回答