【发布时间】:2014-06-03 17:02:00
【问题描述】:
我正在尝试在另一个 SVG 对象下对齐 SVG 文本。这个带有 SVG 线条的示例在 Firefox 中效果很好:
<svg>
<line x1='0' y1='100' x2='100' y2='100' stroke='red'/>
<text x='50' y='100' text-anchor='middle' font-size='24' style="dominant-baseline: text-before-edge">Text</text>
</svg>
边界框正好接触到下面的线,通过选择/突出显示文本可以看到。
然而,不幸的是,Inkscape 还不支持dominant-baseline 样式的垂直对齐方式。 (虽然与text-anchor 的水平对齐似乎得到了很好的支持。)但我需要Inkscape 支持。我发现了一个似乎在 Inkscape 中工作的transform-hack,但我不知道如何获得与dominant-baseline: text-before-edge-效果相同的效果。 (How to center SVG text vertically in IE9)
更新
我正在使用带有 JavaScript 的浏览器来生成 svg。因此,可以(重新)计算 SVG 文本元素在浏览器中的位置以使其可用于 Inkscape。然而,即使这个扩展是明确的(从上面建议的transform-hack 中隐含)我仍然缺乏解决方案。
【问题讨论】:
标签: text svg vertical-alignment inkscape