SVG基础 | SVG tspan 元素 - Web前端
作者:98wpeu发布时间:2026-08-29分类:网页前端技术浏览:2
上一篇文章中我们介绍了如何绘制svg文本,那么如何绘制多行文本呢?SVG 的<tspan>元素用于绘制SVG多行文本。我们不必每行文本都使用绝对定位来排列制作多行文本,使用<tspan>元素可以非常方便的使一行文本相对于另一行文本来定位。使用<tspan>元素还可以使用户在同一时间里选择和复制多行文字。

tspan示例
<svg xmlns="http://www.w3.org/2000/svg"> <text x="20" y="10"> <tspan>tspan line 1</tspan> <tspan>tspan line 2</tspan> </text> </svg>
下面是上面代码的返回结果:
tspan line 1tspan line 2注意上面的返回结果中,由于<tspan>元素没有设置其它参数,默认情况下第二行文字会紧跟着第一行文字排列。
垂直定位
如果你希望每一行文字都相对于前一行文字垂直定位,你可以在<tspan>元素中使用dy属性(delta y):
<svg xmlns="HTTP://www.w3.org/2000/svg"> <text x="20" y="10"> <tspan>tspan line 1</tspan> <tspan dy="10">tspan line 2</tspan> </text> </svg>
现在第二行文字会显示在第一行文字下方,距离为10像素。下面是上面代码的返回结果:
tspan line 1tspan line 2如果你希望<tspan>元素在text中在垂直方向绝对定位某个指定的数值,可以设置<text>元素的y属性。
如果你在<dy>属性中写了多个数字,那么每一个数字会被应用到<tspan>元素的每一个字符上。看下面的例子:
<svg xmlns="http://www.w3.org/2000/svg"> <tspan dy="5 10 20">123</tspan> </svg>
下面是返回结果,注意各个字符在垂直方向上的变化。
123水平定位
要使每一行文本在X轴方向上相对定位可以使用dx属性(delta x)。下面的例子展示了将dx的值设置为30的效果,现在第二行文字在水平方向上相对于第一行文字向右偏移了30像素。
<svg xmlns="http://www.w3.org/2000/svg"> <text x="20" y="10"> <tspan>tspan line 1</tspan> <tspan dx="30" dy="10">tspan line 2</tspan> </text> </svg>tspan line 1tspan line 2
如果你在<dx>属性中写了多个数字,那么每一个数字会被应用到<tspan>元素的每一个字符上。看下面的例子:
<svg xmlns="http://www.w3.org/2000/svg"> <tspan dx="5 10 20">123</tspan> </svg>
下面是返回结果,注意各个字符在水平方向上的变化。
123你可以在<tspan>元素设置x属性来修正<text>元素的X坐标。使用这种方法你可以显示多行头部对齐的文字。来看下面的例子,x属性设置为10:
<svg xmlns="http://www.w3.org/2000/svg"> <text y="10"> <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 line 1tspan line 2tspan line 3为tspan元素添加样式
我们可以为<tspan>元素添加样式,例如你可以将一个<tspan>元素中的文字设置为加粗字体:
<svg xmlns="http://www.w3.org/2000/svg"> <text y="10"> 这是一个被 <tspan style="font-weight: bold;">加粗</tspan> 的文字。 </text> </svg>
下面是上面代码的返回结果:
这是一个被加粗的文字。通过baseline-shift设置上标和下标效果
你可以通过baseline-shift CSS属性将一个<tspan>元素设置为上标或下标。看下面的例子:
<text x="10" y="20"> 这是一个tspan元素的 <tspan style="baseline-shift: super;">上标</tspan> 和 <tspan style="baseline-shift: sub;">下标</tspan> 混合的文本串效果。 </text>
效果如下:
这是一个tspan元素的上标和下标混合的文本串效果。返回SVG教程目录
相关阅读:
MDN tspan
相关推荐
- 百度WEB前端JavaScript编程题和HTML/CSS面试题 - Web前端
- SVG基础 | 绘制SVG连接标记markers - Web前端
- Javascript实例教程:网页中移动拖拽的JS属性 - Web前端
- 【SVG】SVG的viewport,viewBox,preserveAspectRatio - Web前端
- 使用node.js 进行服务器端JavaScript编程 - Web前端
- JavaScript浏览器对象模型概述 - Web前端
- JavaScript面向对象-基于函数伪造的方式实现继承 - Web前端
- 优化网站首页轮播广告之心得 - Web前端
- Node.js 给前端带来了什么 - Web前端
- HTML5技术革命:迎接HTML5.1,展望HTML5.2 - Web前端
- 网页前端技术排行
-
- 1[Web前端]用javascript实现默认图片替代未显示的图片 - Web前端
- 2分析Iconfont-阿里巴巴矢量常用图标库 - Web前端
- 3jQuery实例教程:制作网页中可折叠的面板 - Web前端
- 4基于jquery的滚动条滚动固定div(附演示下载) - Web前端
- 5【第六章】Foundation之按钮和下拉功能 - Web前端
- 6jQuery编写widget的一些技巧分享 - Web前端
- 7分享精心挑选的12款优秀jQuery Ajax分页插件和教程 - Web前端
- 8jQuery实现鼠标移到元素上动态提示消息框效果 - Web前端
- 9在Mac/PC上远程调试iPhone/iPad上的网页 - Web前端
- 最近发表
-
- WordPress随机显示特色图片插件:Random Post Thumbnails
- KeePass实现Chrome浏览器自动填充密码方法一
- LNMP一键包nginx 301强制跳转到https教程
- KeePass实现Chrome浏览器自动填充密码方法二
- #建站# 免费的VPS管理软件Xshell8/Xftp8中文版下载
- 使用Xshell 8连接VPS教程_电脑登录vps的方法
- WordPress评论界面添加烟花????效果
- 不同浏览器书签同步方案:坚果云+Floccus_详细使用教程
- iOS端KeePassXC客户端APP:Strongbox Password Safe
- 给WordPress评论中的Gravatar头像图片添加ALT属性


