在不访问 DOM 的情况下获取 SVG 中文本的大小

我想在服务器上创建一个关于如何创建 SVG 元素的指令数组,然后将该数据传递给浏览器以在一个简单的循环中呈现。这很简单,除了我的计算取决于一些文本占用的空间量,我不知道如何获得它,除非通过绘制和使用getBBox(),但这需要一个 DOM。

当我想在 SVG 可见之前对其进行计算时,客户端也会出现这个问题。

有没有办法做到这一点?仔细想想,node.js 做起来很复杂,尤其是因为它会受到 CSS 的影响,但是如果我们假设字体大小等是在元素本身上指定的,有什么办法吗?

请注意,SVG 的内容是完全动态的,字体大小等可由用户动态指定。


ITMISS
浏览 99回答 1
1回答

米琪卡哇伊

恐怕这是不可能的。尤其是在服务器端。文本渲染在很大程度上不仅取决于字体、大小、行高和其他排版内容,还取决于浏览器甚至是渲染它的操作系统。为了获得精确的结果,我建议在浏览器中渲染文本并获取它的边界框。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript