SVG preserveAspectRatio 终极理解
创始人
2024-06-03 14:58:25

preserveAspectRatio: xMinYMin [meet slice none];

红框为viewBox=“0 0 100 200”;

meet 按viewBox 短边比例来缩放。

slice 按viewBox 长边比例来缩放。

preserveAspectRatio 就是控制viewBox裁剪下来的东西的位置和缩放的。

此时,viewBox 的内容为一个上半圆。

meet

xMidYMid meet (默认情况): 400 / 200 = 2 , 放大两倍

viewBox放大两倍后,w=400,h=200,在svgBox 里面,因此,xMidYMid控制了viewBox 的位置,两个盒子中线对齐。

这里viewBox裁剪以外的区域也会展示。

slice

xMidYMid slice: 300 /100 =3倍

viewBox放大后,svgBox 比viewBox小,因此,xMidYMid控制了svgBox的位置,两个盒子中线对齐

小结

preserveAspectRatio 的对象是viewBox最初裁剪的图像。

meet 和slice 可能会导致放大后viewBox比svgBox 大,此时也按对齐方式对齐即可。

附:

根据官网,此属性还可以用在其他svg元素上。

相关内容

热门资讯

中证A500ETF摩根(560... 8月22日,截止午间收盘,中证A500ETF摩根(560530)涨1.19%,报1.106元,成交额...
A500ETF易方达(1593... 8月22日,截止午间收盘,A500ETF易方达(159361)涨1.28%,报1.104元,成交额1...
何小鹏斥资约2.5亿港元增持小... 每经记者|孙磊    每经编辑|裴健如 8月21日晚间,小鹏汽车发布公告称,公司联...
中证500ETF基金(1593... 8月22日,截止午间收盘,中证500ETF基金(159337)涨0.94%,报1.509元,成交额2...
中证A500ETF华安(159... 8月22日,截止午间收盘,中证A500ETF华安(159359)涨1.15%,报1.139元,成交额...