html - SVG按钮内的文本?
问题描述
我需要在 svg 导航按钮中包含不会影响按钮使用能力并保持悬停效果的文本。文本还需要跟随按钮的保存曲线并在按钮内居中。我提供了我的 HTML 供参考。
我尝试的问题在于它的作用类似于将绝对定位的 h 或 p 元素放在 svg 路径上。它会中断功能和悬停事件,因为它是另一个元素。
<svg viewbox="0 0 86 20" version="1.1" baseProfile="full" width="200" height="200" xmlns="http://www.w3.org/2000/svg">
<g>
<path d="M 80 5 A 100 100 0 0 0 22.2 27.2 L 37.58 42.58 A 80 80 0 0 1 80 27.2 Z"></path>
<text style="transform:rotate(-20deg);" x="0" y="40"><defs><path stroke="white" id="curve-text" d="M 0 15 A 80 80 0 0 1 80 27.2"></path></defs><textpath xlink:href="#curve-text" style="font-size:9pt;">Test</textpath></text>
</g>
</svg>
解决方案
我使用路径#thisID
作为textPath
参考。我startOffset
用来改变路径上文本的起始位置。
<svg viewbox="0 0 86 20" version="1.1" baseProfile="full" width="200" height="200" xmlns="http://www.w3.org/2000/svg">
<g>
<path id="thisID" d="M 80 5 A 100 100 0 0 0 22.2 27.2 L 37.58 42.58 A 80 80 0 0 1 80 27.2 Z"></path>
<text fill="gold">
<textPath xlink:href="#thisID" startOffset="63%" >
<tspan dy="-6">test</tspan>
</textPath>
</text>
</g>
</svg>