【发布时间】:2015-12-26 06:17:48
【问题描述】:
我正在尝试将字符附加到与文本元素的文本内容值分开的 SVG 文本元素。字符需要出现在文本元素的前面,并且看起来像是单词的一部分,例如如果这是我的标签,
<text ...>bar</text>
然后我会将“foo”“附加”到它的前面,这样当它显示在浏览器中时,用户会看到:
foobar
但实际上元素的文本内容仍然只是“条”。
我尝试过使用 CSS ::before 和 ::after 伪元素,但这些似乎没有效果:
svg text::before
{
content: "foo"
}
但是,它们对于非 SVG 元素非常有效:
li::before
{
content: "foo"
}
如果这是不可能的,有没有办法让 SVG 文本元素之间的间距为零?例如
<text class="something" text-anchor="end" dy=".5ex" y="110.25" x="-15">foo</text>
<text style="display:block; float:left; padding: 1px;" class="something-else" text-anchor="end" dy=".5ex" y="110.25" x="-15" font-family="FontAwesome">bar</text>
出现时“foo”直接堆叠在“bar”之上。我可以通过目测来更改 x 坐标,但这真的很不方便,因为我无法控制任何一个 svg 文本元素内容的宽度。
【问题讨论】:
标签: javascript html css svg