在SVG中对齐文本
时间:2020-03-05 18:51:24 来源:igfitidea点击:
我正在尝试使用行和简短文本片段(通常是两个或者三个词)的混合来制作SVG XML文档。我遇到的主要问题是使文本与线段对齐。
对于水平对齐,我可以将" text-anchor"与" left"," middle"或者" right"结合使用。我找不到等效的垂直对齐方式。 " alignment-baseline"似乎并没有做到这一点,所以目前我使用" dy =" 0.5ex"作为中心对齐的摇篮。
是否有适当的方式与文本的垂直中心或者顶部对齐?
解决方案
回答
事实证明,我们不需要显式的文本路径。 Firefox 3仅部分支持垂直对齐标记(请参见此线程)。似乎主要基准线仅在作为样式应用时才有效,而文本锚可以是样式或者标签属性的一部分。
<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似乎无法处理主导基线(或者至少不能以相同的方式)。