2014-09-19 34 views
0

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

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

+1

不确定你的意思是“不再支持”,getBBox至少在Firefox Nightly 34的元素上工作正常,我相对确定这已被支持了很长时间。 – 2014-09-19 14:26:38

+0

不适用于tspan,但 – eagor 2015-06-15 11:33:21

回答

1

任何元素,你可以使用getBoundingClientRect()。看看文档here。在一些浏览器中,返回的矩形不具有高度属性,但通过简单减去rect.bottom - rect.top即可获得它。

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

2

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

Here's a demo to prove it.

这工作得很好,我在FF 32

+1

在Firefox 31.1.0,Linux上引发NS_ERROR_NOT_IMPLEMENTED。 – SixDegrees 2014-09-19 12:03:17

+1

关于这个答案中的例子?或者在其他情况下,您涉及tspan/textPath? – 2014-09-19 12:48:12