SeM*_*eKh 136 w3c svg vertical-alignment
假设我有SVG文件:
<svg width="1024" height="768" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<text x='20' y='60' style="font-size: 60px">b</text>
<text x='100' y='60' style="font-size: 60px">a</text>
</svg>
Run Code Online (Sandbox Code Playgroud)
我想以某种方式对齐顶部a和b.实际上,我希望我的定位是根据roofline而不是baseline!
小智 213
根据SVG规范,alignment-baseline仅适用于<tspan>,<textPath>,<tref>和<altGlyph>.我的理解是它用于抵消它们<text>上面的对象.我认为你在寻找的是dominant-baseline.
可能的值 dominant-baseline是:
auto | use-script | no-change | reset-size | ideographic | alphabetic | hanging | mathematical | central | middle | text-after-edge | text-before-edge | inherit
有关每个可能值的更多信息,请查看W3C关于显性基线属性的建议.
Sim*_*est 114
该alignment-baseline属性是您正在寻找它可以采取以下值
auto | baseline | before-edge | text-before-edge |
middle | central | after-edge | text-after-edge |
ideographic | alphabetic | hanging | mathematical |
inherit
Run Code Online (Sandbox Code Playgroud)
来自w3c的描述
此属性指定对象相对于其父对象的方式.此属性指定此元素的哪个基线与父对应的基线对齐.例如,这允许罗马文本中的字母基线在字体大小更改之间保持对齐.它默认为基线,其名称与alignment-baseline属性的计算值相同.也就是说,块 - 进展 - 方向上的"表意"对齐点的位置是被对齐的对象的基线表中的"表意"基线的位置.
不幸的是,尽管这是实现你所追求的目标的"正确"方式,但Firefox似乎还没有为SVG文本模块实现很多表示属性('Firefox中的SVG'文档)
use*_*079 45
attr("显性基线","中心")
why*_*yoz 28
如果您在IE中对此进行测试,则不支持显性基线和对齐基线.
在IE中居中文本的最有效方法是使用"dy"这样的东西:
<text font-size="ANY SIZE" text-anchor="middle" "dy"="-.4em"> Ya Text </text>
Run Code Online (Sandbox Code Playgroud)
负值会将其向上移动,而dy的正值会将其向下移动.我发现使用-.4em似乎比-.5em更垂直于我,但你将是那个判断.