SVG tspan元素
时间:2020-01-09 10:44:28 来源:igfitidea点击:
SVG <tspan>
元素用于在SVG中绘制多行文本。不必绝对定位每行文本, <tspan>
元素使相对于前一行文本放置一行文本成为可能。 " <tspan>"元素还使用户可以一次选择并复制粘贴几行文本,而不只是一个" text"元素。
tspan示例
这是一个简单的<tspan>示例:
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <text x="20" y="15"> <tspan>tspan line 1</tspan> <tspan>tspan line 2</tspan> </text> </svg>
注意<tspan>是如何导致文本行相对于彼此放置的(彼此之间)。
垂直定位
如果要使线垂直相对放置,可以使用dy属性(δy):
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <text x="20" y="15"> <tspan>tspan line 1</tspan> <tspan dy="10">tspan line 2</tspan> </text> </svg>
现在,第二行文本显示在第一行文本下方10个像素处,因为第二个<tspan>元素的dy属性设置为10.
如果要将<tspan>元素放置在绝对的y位置,请使用y属性,就像使用<text>元素一样。
如果我们在dy属性中写入多个数字,则每个数字将应用于元素<tspan>中的文本字符。这是一个例子:
<text x="10" y="15"> <tspan dy="5 10 20">123</tspan> </text>
这是生成的图像。请注意,字形之间的垂直间距现在是如何变化的。
水平定位
要在x轴上相对放置文本,可以使用dx
属性(delta x)。下面的示例显示了将dx设置为30的效果。请注意,现在第二行文本相对于第一行文本的末尾(不是开头)显示了30个像素:
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <text x="20" y="15"> <tspan>tspan line 1</tspan> <tspan dx="30" dy="10">tspan line 2</tspan> </text> </svg>
如果我们在dx属性中指定了多个数字,则每个数字将应用于元素<tspan>中的每个字母。这是一个例子:
<text x="10" y="20"> <tspan dx="5 10 20">123</tspan> </text>
我们还可以设置x
属性来固定文本行的x坐标。如果我们要在彼此下方显示所有未调整的行的列表,这将很有用。这是一个在三行中将x
设置为10的示例:
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <text y="20"> <tspan x="10">tspan line 1</tspan> <tspan x="10" dy="15">tspan line 2</tspan> <tspan x="10" dy="15">tspan line 3</tspan> </text> </svg>
样式tspan元素
可以分别设置 <tspan>
元素的样式。因此,我们可以使用<tspan>元素来设置文本块的样式,使其与其余文本不同。这是一个例子:
<text x="10" y="20"> Here is a <tspan style="font-weight: bold;">bold</tspan> word. </text>
具有基线偏移的上标和下标
我们可以使用baseline-shift CSS属性创建带有<tspan>元素的上标和下标。这是一个SVGbaseline-shift
示例,显示了如何:
<text x="10" y="20"> Here is a text with <tspan style="baseline-shift: super;">superscript</tspan> and <tspan style="baseline-shift: sub;">subscript</tspan> mixed with normal text. </text>