【发布时间】:2015-07-21 03:26:09
【问题描述】:
我正在生成一个需要包含一些动态文本元素的 SVG。大体结构如下:
--------------------------------------------
| <rect> <text> <rect> <text>|
| |
| |
| |
--------------------------------------------
或者更清楚一点 - 这是图表顶部的图例:
矩形只是 5 像素 x 5 像素的彩色框,但是两个文本元素的宽度都是动态的。然后这 4 个元素需要向右对齐。
有没有办法以某种方式将 4 个元素“浮动”在一起。到目前为止,我所看到的一切似乎都表明,这些元素中的每一个都需要一个明确的 X 和 Y 坐标,直到呈现文本时我才真正知道。
我知道有可用的 javascript 选项('getBBox()' 等),但想知道仅使用 SVG DOM 本身是否有什么我可以做的?
【问题讨论】:
-
另一种方法是在一行中渲染整个文本,在两个文本之间留出足够的(不可见的)间距以容纳 5px 宽的框并右对齐文本,从右边缘结束 5px
-
阿尔文的想法不错。我不确定如何知道放置矩形的 X 坐标?
-
text-anchor="end"的 x 位置从右边缘开始 5px。集装箱的宽度是多少?整页? -
容器的宽度为 100%,并且有多个 rect/text 对。这是图表的图例 - 为了清楚起见,我在上面添加了一张图片。
-
你可以很容易地在没有 SVG 的 HTML 中做到这一点。
标签: javascript svg