Итак, как получить размер SVG файла с javascript, когда ширина и высота не установлены в элементе svg? Svg является строкой, но при необходимости может быть сделана DOM.
Получите размер графики svg, если атрибуты width/height на <svg> не установлены
Ответ 1
Вы можете использовать метод getBBox() объекта SVGElement. Он сообщает вам ширину и высоту, x и y смещение в пикселях без учета масштабирования элемента.
document.getElementById('myelem').getBBox().width
document.getElementById('myelem').getBBox().height
Я думаю, что - это то, что вы ищете.
EDIT:
-
Недавно я узнал, что малоизвестный
getBoundingClientRect()
работает! Вы также можете сделать:var el = document.getElementById('myelem'); var mywidth = el.getBoundingClientRect().width;
-
Имейте в виду, что существует разница между getBBox и getBoundingClientRect. getBBox получает начальные размеры - getBoundingClientRect также относится к преобразованиям, выполненным с помощью масштабирования и т.д.
Ответ 2
SVG - это масштабируемая векторная графика и, следовательно, может иметь любую произвольную высоту и ширину. Формат пропорционален только формату.