2014-09-19 1 views
0

Я пытаюсь получить высоту строки SVG. Я получаю ширину с getComputedTextLength(), которая работает хорошо, но, похоже, нет никакого эквивалента высоты.Получить высоту строки SVG

getBBox() не является вариантом. Он больше не поддерживается в Firefox, по крайней мере, не для текста, по-видимому, потому что он является частью SVG 2.0.

+1

Не уверен, что вы имеете в виду, поскольку «больше не поддерживается», 'getBBox' отлично работает как минимум на элементе в Firefox Nightly 34, я относительно уверен, что это поддерживается в течение длительного времени. –

+0

не работает для tspan, хотя – eagor

ответ

1

Для любого элемента вы можете использовать getBoundingClientRect(). посмотрите here для документации. В некоторых браузерах возвращенный прямоугольник не имеет свойства высоты, но простым вычитанием rect.bottom - rect.top вы его получили.

Пожалуйста, не забывайте, что getBoundingClientRect() вернет значения в абсолютном пространстве, в результате чего getBBox() возвращает значения в пространстве пользователя элемента, что может сбить с толку, если оно применяет преобразования.

2

getBBox() должен отлично работать для текстовых элементов в Firefox.

Here's a demo to prove it.

Это работало отлично для меня в FF 32.

+1

Throws NS_ERROR_NOT_IMPLEMENTED на Firefox 31.1.0, Linux. – SixDegrees

+1

На примере в этом ответе? Или в каком-то другом случае у вас есть участие tspan/textPath? –