Inkscape忽略<use>

时间:2019-05-09 14:32:20

标签: svg inkscape

在Inkscape中导入以下SVG文件仅显示文本,但忽略<use>语句(或它引用的组)。它是错误还是功能?有什么变化吗?顺便说一句,<g>组比示例文件中的组更为复杂。该文件已在Chrome中正确显示。 (Windows 10,Inkscape最新)

谢谢! 马里奥

<svg width="400" height="200" x="0" y="0"
    xmlns="http://www.w3.org/2000/svg">
<defs>
  <g id="plus">
    <circle cx="40" cy="30" r="20" stroke="#FF0000" fill="none"></circle>
  </g>
</defs>
<svg x="100" y="50">
  <rect x="1" y="1" width="78" height="86" rx="10" ry="10" stroke="#0000FF" fill="none"></rect>
  <use href="#plus"></use>
  <text x="20" y="74" width="68" height="26">ABCD</text>
</svg>
</svg>

1 个答案:

答案 0 :(得分:2)

<use href="#plus">应该是<use xlink:href="#plus">。另外,您将需要向根SVG标签添加xmlns:xlink属性。

<svg width="400" height="200" x="0" y="0"
    xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
  <g id="plus">
    <circle cx="40" cy="30" r="20" stroke="#FF0000" fill="none"></circle>
  </g>
</defs>
<svg x="100" y="50">
  <rect x="1" y="1" width="78" height="86" rx="10" ry="10" stroke="#0000FF" fill="none"></rect>
  <use xlink:href="#plus"></use>
  <text x="20" y="74" width="68" height="26">ABCD</text>
</svg>
</svg>

如果进行了这些修复,则文件会加载到Inkscape中。