如何使 Svg 适合容器
已发表: 2022-12-24出于多种原因,SVG 图像非常棒。 它们是矢量图像,这意味着它们可以缩放到任意大小而不会降低质量。 它们的文件大小也很小,非常适合 Web 应用程序。 但是,经常出现的一个问题是 SVG 图像不会自动调整大小以适合其容器。 有几种方法可以解决这个问题。 一种是将元素的宽高属性设置为100%。 这将使图像调整大小以适合容器。 另一种方法是设置 viewBox 属性。 这将为图像定义一个新的坐标系,使其缩放以适合容器。 使 SVG 图像调整大小以适合其容器的最简单方法是将宽度和高度属性设置为 100%。 这可以内联完成,也可以在 CSS 中完成。 内联:... CSS:.container { 宽度:400px; 高度:300px; } .container svg { 宽度:100%; 高度:100%; } 将宽度和高度设置为 100% 后,图像将调整大小以适合容器。 如果图像大于容器,它将按比例缩小。 如果图像小于容器,它将按比例放大。 viewBox 属性还可用于调整 SVG 图像的大小以适合其容器。 viewBox 属性为图像定义了一个新的坐标系。 它是这样使用的: ... 前两个值是新原点的 x 和 y 坐标。 后两个值是图像的宽度和高度。 如果图像大于容器,它将按比例缩小。 viewBox 属性也可用于裁剪图像。 如果图像大于容器,多余的区域将被裁剪掉。 如果图像小于容器,空白区域将用背景色填充。 viewBox 属性可以这样使用:如何缩放 Svg 以适合容器?图片来源:https://googleapis.com 如果要缩放 SVG 以适合容器,可以使用 viewBox 属性。 viewBox 属性采用四个空格分隔的数字:viewBox 左上角的 x 和 y 坐标,后跟宽度和高度。如何缩放可缩放矢量图形 (SVG)? Amelia Bellamy-Royds 写了一本令人难以置信的 SVG 缩放指南。 它不像缩放光栅图形那么简单,但它提供了许多有趣的可能性。 对于初学者来说,可能很难弄清楚如何以最适合他或她的方式设置 SVG。 Inaster 图像,有一个明确定义的长宽比:高度与宽度的比率。 如果您强制浏览器以与其固有高度和宽度不同的尺寸绘制光栅图像,则会扭曲图片。 inline SVGs默认会按照代码中指定的大小绘制,不管画布是大是小。ViewBox是矢量图形创建Scalable Vector Graphics过程中的最后一块。 ViewBox 是元素>svg 的一个属性。 它的值是由空格或逗号分隔的四个数字组成的列表:x、y、宽度和高度。 视口左上角的坐标系必须指定为 x 和 y。 高度是必须缩放以填充高度留下的空间的字符/坐标的数量。 图像的宽高比设置为 true,因此如果您给它指定其他尺寸,您将无法扭曲或拉伸它。 CSS 现在支持适应不同图像类型的能力,这允许您对对象做同样的事情。 您还可以设置 preserveRatioAspect=none 设置以完全像光栅图像一样缩放图形。光栅图像允许您设置它们的宽度和高度,以及它们显示的比例。 sva可以吗? 随着时间的流逝,它变得更加困难。 您可以使用它对 >img> 文件中的图像自动调整图像大小,但您必须对它进行一些修改才能这样做。 除了各种 CSS 属性之外,您还可以通过调整元素的高度和边距来控制元素的纵横比。 如果图片有viewBox,其他浏览器会自动将图片尺寸改为300*150; 该行为未在任何规范中定义。 如果您使用最新的 Blink 或 Firefox 浏览器,您可以缩放图像以适合 viewBox。如果您没有指定高度和宽度,您首选的浏览器将使用其默认宽度和高度。 替换元素以及内联 SVG 和其他替换元素的最简单方法是使用容器元素。 在内联 <svg> 图形中,官方高度(在大多数情况下)将为零。 preserveRatioAspect 的值将导致图形被缩放为零。 不要拉伸你的图形,你应该在你给它们的整个宽度上绘制它们,留下一部分具有适当宽高比的填充区域。 ViewBox 和 preserveRatioAspect 属性可用于实现范围广泛的结果。 在独立的图形比例尺中,嵌套元素可以使用它们自己的比例尺属性来分隔比例尺的各个部分。 此方法将允许您创建一个标题图形,该图形可以扩展以填充宽屏显示,而不会超过高度限制。如何修复 Svg 大小?图片来源:https://svgmall.com这个问题的所有答案,因为修复 SVG 文件大小的最佳方法会因单个文件而异。 然而,一些修复 SVG 文件大小的方法包括使用 SVG 编辑器调整文件大小,或将文件转换为不同的格式。其中一个图像过滤器已被修复为使用计算的大小而不是 SVG 的 false。 我们期望高度和宽度的值是整数形式,所以我们没有意识到这个问题。 最近发布的 WordPress 版本包含一项新功能,允许您计算 WordPress 生成的实际尺寸。 在我的测试中,我同时使用了经典编辑器和块编辑器,并且在修复前后它们之间的图像标记没有发现任何差异。 我又看了一遍,我很确定我已经弄明白了。 如果您查看 SVG 并找到您正在寻找的属性,我会说它们与您使用的属性不同。 从你的例子可以看出,你的SVG的viewbox高27,宽23,但实际的高和宽都必须设置为1030。这似乎是one_pixel_fix函数中的一个新逻辑,它设置了图片的默认宽度为 100x100px。 如果在之前的版本中设置为null,是没有问题的。 有趣的是,高度和宽度被输出了两次。 第一次和最后一次迭代分别发生在 IMG 标签的开始和结束处。 因为浏览器考虑了第一次出现,所以它呈现那个而不是下一个。 使用当前版本时,复制>imgsrc=example-path/file.svg loading height=”70″ width=”68。 如果您想在提交 PR 以恢复这些特定更改之前测试更改,请告诉我们:https://github.com/safe-svg/pull/41。使用矢量图形格式 SVG,我们可以生成自定义图形. 由于 SVG 是一种矢量格式,因此它比 PNG 图像具有更高的灵活性和准确性。 例如,如果您想使用 SVG 创建流体图形,则需要删除高度和宽度属性。 SVG 将响应,这是网页的一个重要功能。Viewbox 对于 Svg 布局特别有用当您需要布局 SVG 文档并相对于视口定位元素时,viewBox 特别有用。如何填充 Svg 容器?有几种不同的方法来填充 svg 容器,但最常见的方法是使用 'fill' 属性。 这可以应用于容器元素,或容器内的各个元素。 fill 属性可以设置为颜色、渐变或图案。