下面是一个简单的SVG文件:
<svg xmlns="http://www.w3.org/2000/svg" width="100mm" height="100mm" version="1.1" viewBox="0 0 377.95 377.95">
<rect x="0" width="189" height="189" stroke="black" stroke-width="6" fill="red"/>
</svg>
这将呈现一个100mm × 100mm的盒子,左上角位于原点。
如果我将viewbox更改为:
viewBox="0 0 177.95 177.95"
则盒子按比例放大,左上角仍然在原点,如预期的。
但是,如果我只改变视图框的宽度,像这样:
viewBox="0 0 177.95 377.95"
then then box不是缩放,而是沿着X轴移动。
我认为只有前两个参数的viewbox影响翻译?为什么盒子不在X方向上拉伸?
如果缩放在X和Y方向上相同,则viewbox缩放是否正确工作?
谢谢!
如何在SVG的实际尺寸(嵌入帧)中缩放视口是由preserveAspectRatio
属性控制的。
请参阅MDN条目和/或参阅Sara Soueidan的《理解SVG坐标系统和转换》。