【发布时间】:2012-09-04 17:25:04
【问题描述】:
我有一个 div 元素,其中包含一个 svg 图形(一堆圆和边),我还在 svg 元素上设置了 viewBox 属性。图中的节点和边的坐标在px 中针对指定的屏幕大小(因此也针对指定的div 大小)进行了硬编码。使用所需的div 大小,图表可以很好地加载,并且在调整浏览器窗口大小时也可以上下缩放。
但是,每当在不同的屏幕/div 尺寸下加载页面时,我的问题就会出现,因为 svg 图像对于之前指定的 div 尺寸保持不变。这会创建一个对于较小的浏览器/屏幕尺寸来说太大的图像。
我为svg 元素设置了以下内容:
<svg id="mygraph" preserveAspectRatio="xMidYMid meet">
并使用 Javascript 设置其 viewBox 属性,紧跟在 div 元素之后:
<script type="text/javascript">
document.getElementById("mygraph").setAttribute("viewBox", "0 0 " + $("#graphdiv").width() + " " + $("#graphdiv").height());
</script>
这并不能解决问题。那我还能尝试什么?
【问题讨论】:
标签: html css svg scale viewbox