【发布时间】:2013-09-07 01:57:58
【问题描述】:
所以我有一个 SVG 矩形,里面有 SVG 文本。放置在文本框中的 SVG 文本包括来自用户配置文件的内容。此信息是从服务器发送的,我希望它具有如下特定定位:
到目前为止,我已经相当轻松地做到了这一点......但问题是有时人们没有完全填写他们的个人资料(即他们留下了他们的出生日期或位置)所以它最终创建了一个空白的 SVG 文本。
<g display="default">
<text x="10" y="30">Alexander the Great</text>
<text x="10" y="40"></text>
<text x="10" y="50">Greece </text>
</g>
我可以假设他们总是有自己的名字,但如果没有提供出生日期,我想要它,以便我的文本框足够智能,它将位置移动到姓名下方。
现在我在我的文本节点中输入特定的 x 和 y 属性,这就是证明这有点困难的原因。有没有办法让定位更敏感?通过 CSS 还是通过 SVG 属性?我通过 D3.js 生成 SVG 元素,所以如果需要,我可以简单地设置 if 语句来检查,但我有点想避免这种情况。谢谢。
【问题讨论】:
-
听起来你会想要使用 HTML 和一组
divs。它们会自动重新定位。 -
请注意,您可以通过
<foreignContent>将 XHTML 嵌入到 SVG 中。 -
我知道
<foreignContent>并正在考虑制作一个 div 以便它可以自动重新定位,但我不完全确定这是否是一个好习惯。我会尝试一些事情,让你们知道。如果你们中的一个人可以将其发布为其他人查看示例的答案,那就太好了。
标签: css text svg d3.js responsive-design