svg.js - 在 SVG 中将文本居中
问题描述
如何将文本居中在一个圆圈中?我的结构是这样的:<g><circle ...</><text ...>...</text></g>
我已经知道这种技术:<svg viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" height="100%" width="100%"><g><circle cx="50%" cy="50%" r="50%"/><text x="50%" y="50%" text-anchor="middle" dy="0.3em"></text></g></svg>
但这在 svg.js 中不可用。
我用 bbox 试过了,但文本并没有真正居中。
有更好的想法吗?
编辑:
这是我的代码:
let dot = draw.group();
let _dot = dot.circle(20).move(pos._x-10, pos._y-10);
let lab = dot.plain(i.toString());
let bA = _dot.bbox();
let bB = lab.bbox();
lab.move(bA.x+(bA.width-bB.width)/2,
bA.y+(bA.height-bB.height)/2);
解决方案
有一种通过中心定位形状的 center 方法:
circle.center(20, 20)
text.center(20, 20)
但是,您也可以将您的方法与 svg.js 一起使用。只需设置您需要的属性attr()
推荐阅读
- vba - 反向地理编码宏:未定义用户定义类型
- ajax - AJAX 成功函数和错误函数
- c# - 实体框架 6 - 应用自定义 SQL 表达式来选择要执行的 Sql 列
- tsql - 在多个替换和子字符串中将字段转换为十进制
- mysql - 获取过去 30 天中每一天的 mysql 行数
- sql - 如何将日期变量编码到 Access sql 语句中
- c# - 第 3 方 DLL 从 IDisposable 终结器引发异常
- c# - 是否可以在 ASP.NET Core 中为共享视图定义特殊文件夹?
- swift - “__消费”在 Swift 中做了什么?
- swift - 如何始终观察标签文本并在 swift 4 中更改颜色?