核心优势
- XML的格式,容量较小
- 比较灵活,可以修改样式
自适应缩放
-
viewport:是 SVG 的可视区域,就是 SVG 的属性width和height的范围,离开可视区域外的内容是不会被渲染的。 -
viewBox:用于画布上制作 SVG图形的坐标系统(viewBox="x, y, width, height")默认和viewBox一致。<svg width="20px" height="20px" viewBox="0 0 20 20">xxx</svg>-
如果进行手动指定, SVG 会进行自动换算缩放比:
width/viewBox.width、height/viewBox.height<svg width="500" height="200" viewBox="0 0 50 20" style="border: 1px solid #000;"> <rect x="20" y="10" width="10" height="5" style="stroke: #000; fill: none;"/> </svg>Tip:
viewBox一般作为静态值需要固定下来,width和height是可以动态修改的
-
-
preserveAspectRatio:保留宽高比,当viewport和viewBox宽高比不相同时,指定在viewport中的绘制区域,默认值是xMidYMid meet-
meet:表示固定宽高比,并将viewBox缩放为viewport的大小在
meet模式下,最终压缩比优先采纳压缩比较小的。(设置 yMid/yMin/yMax 都一样) -
slice:保持宽高比并将所有不在viewport中的viewBox裁掉在
slice模式下,最终压缩比优先采纳压缩比较大的。(设置 xMid/xMin/xMax 都一样) -
xMidyMid:(x轴和y轴一样)xMid:viewBox的x轴的中点在viewport的x轴中点xMin:viewBox的x轴的起点(最小边)在viewport的x轴起点(最小边)xMax:viewBox的x轴的终点(最大边)在viewport的x轴终点(最大边)
-
none:不保持宽高比,缩放图像适合整个viewBox,可能会发生图像变形。在
none模式下,将分别计算 x 和 y 轴的压缩比。
-