SVG 缩放和 viewBox

SVG Scaling and viewBox

这是一个简单的 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 x 100mm 盒子。

如果我将视图框更改为:

 viewBox="0 0 177.95 177.95"

然后框按比例放大,左上角仍然在原点,正如预期的那样。

但是,如果我像这样只改变视图框的宽度:

  viewBox="0 0 177.95 377.95"

然后方框缩放但沿X轴移动。

我以为只有viewbox的前两个参数影响了翻译?还有为什么盒子没有在 X 方向拉伸?

只有在 X 和 Y 方向上的缩放比例相同时,视图框缩放才能正常工作吗?

谢谢!

视口在 SVG 的实际尺寸(嵌入框架)中的缩放方式由 preserveAspectRatio 属性控制。

请参阅 Sara Soueidan 的 MDN entry and/or refer too Understanding SVG Coordinate Systems and Transformations