Получить базовый текст вместо BoundingBoxRect - PullRequest
0 голосов
/ 25 марта 2019

Я работаю над компонентом React, в котором я визуализирую элемент rect и элемент text внутри элемента rect.

Кроме того, я хочу указать вертикальное выравнивание элемента text: для этого я нашел атрибут dominant-baseline (https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/dominant-baseline), который идеально подходит.
Жаль, что атрибут dominant-baseline не работает ни в IE11, ни в Edge. Чтобы решить проблему, я подумал, что мог бы вручную отрегулировать положение с помощью атрибута dy, но вот проблема: с помощью атрибута dominant-baseline браузер учитывает именно текст, а не его ограничивающий прямоугольник.
Например, если я присваиваю hanging атрибуту dominant-baseline и помещаю элемент text 10px сверху элемента rect, я получаю следующее:
enter image description here

Как видите, 10px от rect - это расстояние между вершиной rect и фактической записью метки. Вместо этого, если бы я рассмотрел boundingBoxRect элемента text и использовал его для позиционирования элемента text 10px от верхнего элемента rect, у меня будет следующий результат:
enter image description here

Сначала, я надеюсь, что я правильно объяснил, что такое «допущение», затем мой вопрос: есть ли способ получить фактическое пространство, занимаемое текстом? Что-то вроде getTextBoundingBox? В противном случае я не смог бы получить точно такой же результат в Chrome / Firefox / Opera (где работает dominant-baseline) и IE / Edge (где мне нужно было бы использовать атрибут dy с getBoundingBoxRect())

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...