html - SVG 文本;将 tspan 向左对齐,使文本父级向右对齐
问题描述
再会。知道 x 和 y,我需要将多线的右边缘与<text>
它对齐。问题是它<tspan>
里面的 s 的内容应该左对齐。X 和 Y 坐标(带有一些偏移量)用作 的起始坐标<line>
。
像这样:
是否有可能使用 svg 的属性和/或 css 来实现这种行为?
我只是通过将它添加到 x with on parent来获得第一个<tspan>
宽度getBBox()
,然后将其用作线的起始坐标,但它是一个运行时解决方案:(text-align="start"
<text>
这是一个简化的片段:
<svg viewBox="0 0 500 500">
<!-- Knowing x and y to translate -->
<g transform="translate(200, 200)">
<text
x="0"
y="0"
fill="#000"
text-anchor="end"
dominant-baseline="hanging"
>
<tspan
font-size="20"
x="0"
>
Title
</tspan>
<tspan
font-size="15"
x="0"
dy="20"
>
Subtitle
</tspan>
<tspan
font-size="10"
x="0"
dy="15"
>
Description
</tspan>
</text>
</g>
<line
stroke="#f11"
stroke-width="3"
x1="205"
y1="210"
x2="305"
y2="210"
/>
</svg>
解决方案
答案是不。
SVG 没有任何原生的自动布局工具可以让你做你想做的事。它希望您知道要放置每行文本的确切位置。
您需要按照您的建议使用 Javascript。
推荐阅读
- python-3.x - 使用下拉菜单时出错 - Python Selenium
- java - 什么是临时锁
- javascript - 使用纯 JavaScript 动画吐司
- ios - 限制导航栏在按钮点击时隐藏
- mysql - MySQL-选择 10 行,对类别列有限制
- sql - 如何以自动化方式保存 Oracle DDL
- javascript - ReactJS TypeError:无法读取未定义的属性“handleChange”
- javascript - 更新的 Chrome 浏览器中的不稳定延迟加载
- wordpress - 重置密码电子邮件模板 Wordpress
- c++ - 找不到 arm-none-linux-gnueabi-g++ 编译器的 -lpaho-mqtt3c