最近更新:
最重要的是,如果您要使用 SVG,最好熟悉规范或阅读J. Eisenberg 的“SVG Essentials”之类的明确指南,因为这并不是您一开始可能会想到的微不足道的事情。
然后,如果我理解正确,还有另一种方法jsFiddle。
首先,正确设置viewBox
属性的值。在您当前的示例中,应该viewBox="0 0 130 220"
使您的所有内容都可见(您必须指定至少 220 作为最后一个数字,因为您的最后一个组<g>
被翻译,即它的坐标系向下移动到 200 个单位,如果您不这样做,您的内容将不可见,因为它远远超出了您的视图框的最外面的 y 点,在您的 jsfiddle 中设置为 70)。
preserveAspectRatio
其次,指定应该是的正确值preserveAspectRatio="xMinYMax meet"
,这意味着(由 J. Eisenberg 提供的“SVG Essentials”提供):
将 viewBox 的最小 x 与视口的左角对齐。
将 viewBox 的最大 y 值与视口的底部边缘对齐。
meet
表示满足内容,如果不适合,则不对其进行切片。
第三,如果您要将元素添加到 svg 的底部,则必须viewBox
相应地更改值,因为如果您将插入其中,例如:
<g transform="translate(0, 300)">
<text>text 55 </text>
</g>
它将发生在您的 viewBox 之外,它的最大 y 点为 220(如果您按照我之前所说的那样设置它)
现在希望有帮助,让我知道。
老东西
style="height:200px"
从您的 svg中删除
然后如果你需要高度,你可以动态改变你的高度svg
var $wrapper = $('#resize'),
$svg = $('#svg2');
$wrapper.resizable({
handles: 'se',
aspectRatio: 400/200,
resize: function(ev, ui) {
$svg.css('height', ui.size.height);
}
});
'#resize'
- 是id
包装的svg
我现在很困惑你想要什么。您viewbox
在svg
. 这意味着您的svg
遗嘱中只有一部分是可见的。尝试删除viewbox
并查看结果是否让您满意。
然后它全部可见并且通常调整为父 div