ViewBox 属性:使 SVG 图像缩放到其容器的大小
已发表: 2023-02-13如果您曾尝试使 SVG 图像缩放以适应特定区域,您可能已经注意到它与常规图像的工作方式不同。 如果将 SVG 图像的宽度和高度设置为“100%”,图像将被拉伸以适合容器。 这可能是不可取的,尤其是当您尝试创建响应式设计时。 使 SVG 图像缩放到其容器大小的一种方法是设置 viewBox 属性。 viewBox 属性定义 SVG 图像内容的坐标系。 默认情况下,坐标系设置为 0 0 400 400,这意味着图像的左上角在 0,0,右下角在 400,400。 如果将 viewBox 属性设置为 0 0 100 100,图像将按比例缩放,左上角为 0,0,右下角为 100,100。 viewBox 属性也可用于使 SVG 图像缩放到其子图像的大小。 如果您有包含许多小细节的 SVG 图像,这会很有用。 为了使 SVG 图像缩放到其子项的大小,您需要将 viewBox 属性设置为 0 0 100 100。这将使图像缩放,以便左上角位于 0,0,右下角为 100,100。
本文将引导您完成缩放矢量图形 (SVG) 的过程。 Amelia Bellamy-Royds 写了一本令人难以置信的 SVG 缩放指南。 尽管缩放光栅图形不像缩放矢量图形那么简单,但它具有令人兴奋的潜力。 初学者经常对如何让它以他们想要的方式运行感到困惑。 Inaster 图像具有明确定义的宽高比:宽高比。 如果您强制浏览器以与其固有高度和宽度不同的纵横比绘制光栅图像,它会扭曲事物。 内联 SVG 将根据代码中指定的大小绘制,而不管画布的大小。
ViewBox 是矢量图形复合体中的最后一块,它允许您生成更大的矢量图形。 该元素提供一个 viewBox 作为属性。 它包含四个数字:x、y、宽度和高度,所有数字都可以用空格或逗号分隔。 在视口的左上角,必须指定这两个变量。 高度可以定义为必须缩放以满足用户高度要求的坐标和图标空间的数量。 默认情况下,如果图像的尺寸与纵横比不对应,则不会拉伸或扭曲图像。 除了新添加的 object -fit CSS 属性外,您现在还可以适应其他图像类型。
如果您希望图形像光栅图像一样缩放,您还可以禁用 preserveRatioAspect=none。 光栅图像可以按比例缩小或放大以满足用户的需要。 SVG 如何处理这个问题? 随着时间的推移,这个过程变得越来越困难。 使用 >img> 中的图像自动调整图像大小是一个很好的起点,但您需要稍微修改一下才能开始。 要动态控制元素的纵横比,可以将其配置为具有与该元素的高度和边距相对应的高度和边距。 只要图像有 viewBox,就会应用默认的 300*150 大小; 此行为未在任何标准中定义。
如果您使用最新的 Blink 或 Firefox 浏览器,您可以缩放图像以适合 viewBox。 无论您指定高度还是宽度,这些浏览器都将使用它们的默认尺寸。 例如,容器元素是替换 SVG 中元素的最直接方法。 在内联 /lt;svg> 图形中,官方高度将为零。 如果 preserveRatioAspect 值设置为 true,则图形将减少为空。 如果要拉伸图形,请确保覆盖整个宽度,然后将其溢出到填充区域,并仔细设置适当的纵横比。 无法限制 viewBox 和 preserveRatioAspect 属性。 可以为每个嵌套元素创建单独的图形比例部分,每个元素都有自己的比例属性。 可以制作一个标题图形,该图形可以拉伸以填充宽屏显示,而不会影响您的欢迎。
如何调整 svg 文件的大小? 完成后,只需拖放 SVG 图像文件或单击白色区域以选择文件。 配置调整大小设置后,单击“调整大小”按钮使它们变大。 该过程完成后,您将能够下载结果。
ViewBox 用于缩放 SVG 图像。 数字“0 0 100 100”指定坐标系 x=0,y=0,宽度=100 个单位,高度=100 个单位。 总而言之,包含 SVG 宽度和高度的矩形将填充图像的高度和宽度,并且所有尺寸都将按比例缩放。
导出 SVG 时,“更多选项”部分中的“响应式”选项未选中。 当您选择 Illustrator 画板时,它将显示您指定的尺寸。 在裁剪画板之前,请确保选择或突出显示您的徽标。
PNG 文件包含比 SVG 文件更多的路径和节点形式的数据。 尽管它们大小相同,但SVG 图像不如 PNG 图像好。
如何使 Svg 大小相同?
这个问题没有一个放之四海而皆准的答案,因为使 SVG 大小相同的最佳方法会因项目而异。 但是,关于如何使 SVG 大小相同的一些技巧包括使用一致的度量单位和对所有 SVG 使用相同的 viewBox 属性。
因为它是一种基于矢量的格式,所以可以在不损失质量的情况下进行缩放。 然而,在渲染阶段,SVG 可以发挥作用,尤其是当它在页面上渲染然后放大时。 如果您想打印 1:1比例的房间副本,您需要将 SVG 缩放一个 / worldToPrinterScaleFactor。 要打印房间的半比例副本,您必须将 SVG 缩放(乘以)0.5 / worldToPrinterScaleFactor。
一个 Svg 可以是一个 Svg 的孩子吗?
SVG 文档片段可以是独立文档,也可以是包含在“svg”元素中的父文档的片段。 尽管'svg' 元素是另一个元素的直接后代,它共享命名空间,但 SVG 文档片段的根不是它自己的根。 在 sva 中必须有一个带有元素名称的命名空间。
使用 D3 创建路径
var 点以网格格式排列。 它由三个词组成:geo。 您可以使用 br() 和 point. shape Group *br 一个点等于一个基准。
程序的名称是 d。 转换(属性)。
函数在以下定义中指定。
这意味着如果一个var loc = d transform(d3),它代表ad transform。 它可能是确切的位置。
路径是以下等式的结果:loc + loc + M、loc + loc + L、loc + C、loc + C 和 loc + L。 ***br> 可能是; 或者它可能是; 或者它可能是; 或者它可能是; 或者它可能是; 或者它可能是; 或者它可以