跳转到主内容
极星编程网:以代码为星,赴技术山海!

HTML中SVG如何添加文字text元素

SVG 中添加文字必须使用 元素,其 x/y 坐标指向首字符基线起点;多行需用 ,沿路径排字须确保 同根、ID 准确、用 href(非 xlink:href);字体与字距需注意兼容性及内联处理。
元素是 SVG 中添加文字的唯一标准方式,不是可选方案,而是必须用它——没有
、

或 CSS 伪元素能替代它在矢量上下文里渲染可缩放、可样式化、可脚本控制的文本。 text 的 x/y 坐标到底指哪儿?
x
和
y
不是指左上角,也不是文字框中心,而是**首字符基线起点**(baseline origin)。这个点默认落在字母“x”的底部附近,所以当你设
y="20"
,实际看到的文字主体会“浮”在 y=20 线上方一点。 若想让文字视觉上“垂直居中”于某个容器高度,别只调
y
,要配
dominant-baseline="central"
或
"middle"
text-anchor="middle"
配合
x="150"
才能让整段文字水平居中于 x=150 这条竖线 Android WebView 或旧版 Safari 对
dominant-baseline
支持弱,
"alphabetic"
(默认)最稳;中文建议试
"hanging"
,顶部对齐更自然 多行文字不能只靠换行符
默认忽略
\n
和空格折叠,写
第一行\n第二行
会糊成一行。真要多行,必须用
:
第一行 第二行
dy
是相对于上一行的增量偏移,比重复写
y
更可靠 每行
可单独设
fill
、
font-weight
,适合标题+副标组合 避免用
dx
微调单字位置——不同字体度量差异大,一换字体就错位 textPath 沿路径排字时 href 失效的常见原因 写好
,再用
却不显示文字?大概率是这三处之一:
没放在
同一 SVG 根下(比如被包在
里但没正确引用) ID 名拼写不一致,大小写敏感,
#Arc
≠
#arc
SVG 版本混用:
xlink:href
(SVG 1.1)在现代浏览器已弃用,必须用
href
(SVG 2.0+) 验证方法:打开开发者工具,检查该
是否真实存在于 DOM 中,且 ID 可被 document.getElementById() 获取到。 使用HTML,CSS,JavaScript开发Android应用程序 英文文字pdf版附源文件 如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Andr​​oid友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Andr​​oid应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更 下载 立即学习 “ 前端免费学习笔记(深入) ”; 字体和字间距的兼容性陷阱 用 Web 字体时,
font-family
必须和
@font-face
声明的
font-family
完全一致(包括引号、空格、连字符),否则回退到系统字体。
letter-spacing
在 Chrome/Firefox/Safari 15.4+ 可用,但 iOS 15 以下 Safari 不支持,慎用 需要精确字距又得保兼容?用
手动布点,虽然啰嗦但 100% 可控 导出独立 SVG 文件时,别指望外部 CSS 生效——把
@font-face
Base64 编码后塞进 SVG 内的