【问题标题】:Get Height of SVG String获取 SVG 字符串的高度
【发布时间】:2014-11-13 23:54:36
【问题描述】:

我正在尝试获取 SVG 字符串的高度。我用 getComputedTextLength() 得到宽度,效果很好,但似乎没有任何等效的高度。

getBBox() 不是一个选项。 Firefox 不再支持它,至少文本不支持,显然是因为它是 SVG 2.0 的一部分。

【问题讨论】:

  • 不确定“不再受支持”是什么意思,getBBox 至少在 Firefox Nightly 34 中的 元素上可以正常工作,我相对确定这已经支持了很长时间时间。
  • 虽然对 tspan 不起作用

标签: text svg bounding-box


【解决方案1】:

getBBox() 应该适用于 Firefox 上的文本元素。

Here's a demo to prove it.

这对我在 FF 32 中效果很好。

【讨论】:

  • 在 Firefox 31.1.0、Linux 上抛出 NS_ERROR_NOT_IMPLEMENTED。
  • 关于这个答案的例子?或者在您涉及 tspan/textPath 的其他情况下?
【解决方案2】:

对于任何元素,您都可以使用getBoundingClientRect()。查看here 的文档。在某些浏览器中,返回的矩形没有高度属性,但是通过简单地减去 rect.bottom - rect.top 就可以了。

请注意getBoundingClientRect() 将返回绝对空间中的值,而getBBox() 返回元素的用户空间中的值,如果它应用了转换可能会造成混淆。

【讨论】:

    猜你喜欢
    • 2012-05-02
    • 1970-01-01
    • 2013-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-29
    • 2017-09-15
    • 2013-06-14
    相关资源
    最近更新 更多