我正在尝试使用混合的行和简短的文本片段(通常是两个或三个单词)来制作SVG XML文档。我遇到的主要问题是让文本与线段对齐。
对于水平对齐,我可以将text-anchor
与left
,middle
或right
一起使用。我找不到垂直对齐的等价物; alignment-baseline
似乎没有这样做,所以目前我使用dy="0.5ex"
作为中心对齐的kludge。
是否有正确的方式与文本的垂直中心或顶部对齐?
答案 0 :(得分:60)
事实证明,您不需要显式文本路径。 Firefox 3仅部分支持垂直对齐标记(see this thread)。似乎主导基线仅在作为样式应用时有效,而text-anchor可以是样式或标签属性的一部分。
<path d="M10, 20 L17, 20"
style="fill:none; color:black; stroke:black; stroke-width:1.00"/>
<text fill="black" font-family="sans-serif" font-size="16"
x="27" y="20" style="dominant-baseline: central;">
Vertical
</text>
<path d="M60, 40 L60, 47"
style="fill:none; color:red; stroke:red; stroke-width:1.00"/>
<text fill="red" font-family="sans-serif" font-size="16"
x="60" y="70" style="text-anchor: middle;">
Horizontal
</text>
<path d="M60, 90 L60, 97"
style="fill:none; color:blue; stroke:blue; stroke-width:1.00"/>
<text fill="blue" font-family="sans-serif" font-size="16"
x="60" y="97" style="text-anchor: middle; dominant-baseline: hanging;">
Bit of Both
</text>
这适用于Firefox。不幸的是,Inkscape似乎没有处理显性基线(或者至少不是以相同的方式)。
答案 1 :(得分:2)
通过将alignment-baseline
设置为central
或middle
,确实可以实现此效果。