为什么<textpath>没有显示?

时间:2020-04-10 21:18:55

标签: svg polygon

预期行为:

enter image description here

我正试图在的帮助下用多边形编写ABC,但没有任何显示。这是正确的方法吗?

  <svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 84 96">
    <g id="ABC" transform="translate(-8.000000, -2.000000)">
      <g transform="translate(11.000000, 5.000000)">
        <text x="10" y="100" style={{ fill: '#64FFDA' }}>
          <textPath href="#Shape" fill="#64FFDA">
            ABC
          </textPath>
        </text>
        <polygon
          id="Shape"
          stroke="#64FFDA"
          strokeWidth="5"
          strokeLinecap="round"
          strokeLinejoin="round"
          fillOpacity="transparent"
          points="39 0 0 22 0 67 39 90 78 68 78 23"></polygon>
      </g>
    </g>
  </svg>

1 个答案:

答案 0 :(得分:2)

如果需要在多边形内放置字母,则需要将<text>命令放置在<polygon>命令下方
注意SVG命令编写的语法。您需要strokeWidth ="5"

来代替stroke-width ="5"

<svg xmlns="http://www.w3.org/2000/svg" role="img" width="20%" height="20%" viewBox="0 0 84 96">
<g id="ABC" transform="translate(-8.000000, -2.000000)">
  <g transform="translate(11.000000, 5.000000)">
    
    <polygon
      id="Shape"
      stroke="#64FFDA"
      stroke-width="4"
      fill="#151515"
      points="39 0 0 22 0 67 39 90 78 68 78 23"></polygon>
  </g>
  <text x="50" y="55" font-size="22px" font-weight="500" font-family="sans-serif" fill="#64FFDA" text-anchor="middle" >ABC</text>
 </g>
</svg>