<text>
元素用于在SVG图形中插入文本。它允许你指定文本的位置、字体、大小、颜色等样式属性。通过<text>
元素,你可以将文本内容嵌入到图形中,创建具有视觉效果的文字说明、标签或注释等。
目录
基本语法
<svg width="300" height="200">
<text x="10" y="40" fill="black" font-size="20" font-family="Arial">Hello, SVG!</text>
</svg>
x
:指定文本起始点的横坐标。y
:指定文本起始点的纵坐标。fill
:指定文本的填充颜色。font-size
:指定文本的字体大小。font-family
:指定文本的字体系列。
属性详解
- x 和 y:
x
和y
属性决定了文本的起始位置(左下角)。它们定义了文本的“锚点”位置。- 如果你想对文本进行多行排布,可以使用
tspan
元素来组织文本。
- dx 和 dy:
dx
和dy
属性可以用来对已有文本位置进行相对调整。dx
控制文本水平移动,dy
控制文本垂直移动。
- fill:
fill
属性用于设置文本的填充颜色,可以是颜色名称、RGB值、HEX值等。
- font-size:
font-size
属性定义文本的字体大小,单位通常是像素(px)或其他CSS单位。
- font-family:
font-family
属性定义文本使用的字体。如果指定的字体不可用,则会回退到默认字体。
- text-anchor:
text-anchor
属性用于控制文本的对齐方式。常见值为start
(默认值,左对齐)、middle
(居中对齐)和end
(右对齐)。
- stroke:
stroke
属性用于设置文本的描边颜色。可以与stroke-width
配合使用。
- stroke-width:
stroke-width
属性指定文本描边的宽度。
- letter-spacing:
letter-spacing
属性定义字母之间的间距,单位为像素或其他CSS单位。
- word-spacing:
word-spacing
属性定义单词之间的间距。
- writing-mode:
writing-mode
属性控制文本的书写方向(例如,垂直书写或水平书写)。
文本对齐
通过 text-anchor
属性可以调整文本的对齐方式。常用的对齐方式如下:
- start:文本左对齐(默认对齐方式)。
- middle:文本居中对齐。
- end:文本右对齐。
示例:
<svg width="300" height="200">
<text x="150" y="40" text-anchor="middle" font-size="20" fill="black">Centered Text</text>
</svg>
在这个示例中,文本“Centered Text”会在 (150, 40)
位置居中对齐。
文本换行与换行符
SVG中的文本不会自动换行。如果需要换行,可以使用 <tspan>
元素。
示例:换行
<svg width="300" height="200">
<text x="10" y="40" font-size="20" fill="black">
<tspan x="10" dy="30">Hello,</tspan>
<tspan x="10" dy="30">SVG!</tspan>
</text>
</svg>
- 在这个示例中,
<tspan>
元素用于在文本中插入换行符,使文本显示在不同的行上。
示例代码
- 基本文本
<svg width="300" height="200">
<text x="10" y="40" fill="black" font-size="20" font-family="Arial">Hello, SVG!</text>
</svg>
- 这个例子展示了简单的文本元素,文本内容为“Hello, SVG!”。
- 文本对齐
<svg width="300" height="200">
<text x="150" y="40" text-anchor="middle" font-size="20" fill="black">Centered Text</text>
</svg>
- 这个例子展示了文本在水平居中的对齐方式。
- 多行文本
<svg width="300" height="200">
<text x="10" y="40" font-size="20" fill="black">
<tspan x="10" dy="30">Hello,</tspan>
<tspan x="10" dy="30">SVG!</tspan>
</text>
</svg>
- 这个例子展示了如何使用
<tspan>
元素将文本分成多行。
- 带描边的文本
<svg width="300" height="200">
<text x="10" y="40" fill="white" stroke="black" stroke-width="1" font-size="30" font-family="Arial">Outlined Text</text>
</svg>
- 这个例子展示了具有描边效果的文本,文本内容为“Outlined Text”。
- 文本与字体样式
<svg width="300" height="200">
<text x="10" y="40" font-size="20" font-family="Verdana" font-style="italic" fill="purple">Italic Text</text>
</svg>
- 这个例子展示了文本的字体样式为斜体(
font-style="italic"
)和字体为“Verdana”。
参考资料
出站链接
通过<text>
元素,SVG使得在网页中插入文本变得非常灵活。你不仅能控制文本的外观和位置,还可以轻松实现文本的复杂布局和样式调整。在实际应用中,常常结合CSS和其他SVG元素一起使用,以创建富有创意的图形和文字内容。
发表回复