【发布时间】:2012-01-30 07:20:45
【问题描述】:
是否可以给 SVG <tspan> 元素背景颜色?如果没有,模拟它的最佳方法是什么?
我的目标是赋予文本背景颜色,我认为填充 <tspan> 元素会是完美的——它们已经“勾勒”了代表多行文本中的行的文本块(<tspan> 元素)。
我正在使用的示例:
<text x="100" y="100" font-size="30">
<tspan>hello</tspan>
<tspan x="100" dy="1.2em">world</tspan>
</text>
我尝试了“填充”属性,但它似乎影响文本的填充(颜色),而不是它后面的区域:
<tspan fill="yellow">hello</tspan>
我也尝试通过 CSS 设置背景颜色:
<style type="text/css">tspan { background-color: yellow }</tspan>
..但这不起作用(至少在 Chrome 17 和 Firefox 12 中)。
使用“填充”将 tspan 包装在 <g>(或 <g> 中的文本本身)也不起作用:
<g fill="yellow"><tspan>hello</tspan></g>
<tspan><g fill="yellow">hello</g></tspan>
除了创建一个位于同一位置的 <rect> 元素(我想避免这种情况)之外,还有其他方法可以实现这一点吗?
【问题讨论】: