快速理解 svg 中的 viewBox

关于 viewBox 百度了一下,似乎很多解释,看了不少理解后发现大部分都有点复杂化了,显然解释者并没有太理解设计这个过程。

我来简化一下,svg 有两个过程,一个是设计,一个是使用,

设计过程中我们并不确定我们设计的 svg 图在使用时的尺寸,所以我们在设计时不需要去管 viewBox,只需要在意 svg的 width 和 height 就行了。

在使用时,我们将 viewBox 设置为 0,0,width,height, 就行了。

viewBox 就是告诉svg 我在设计这个图的时候的画布尺寸。

例如:我设计了一个SVG图标,这个图标中只有一条线,在设计时,我的画布是 1024 * 1024 ,那么这条线的两个点分别是 x1:100,y1:100, x2:900,y2:900,然后我需要使用这个图标了,当然,我很少有可能以 1024 的尺寸在页面中展示这个图标,我在我的页面上以 64*64的尺寸来展示这个图标

<svg width="64" height="64">...省略</svg>

此时,如果没有 viewBox,那么我们发现我们画的线条最小的位置是 x100,y100 不会显示在 64 里,因此 viewBox=”0,0,1024,1024″ 告诉程序,这个图我是在 1024 的画布上画的,现在展示为 64,程序将自动进行换算而得到正确的展示目的。