如何使用 Svg 精灵作为图标

已发表: 2023-01-16

SVG 精灵是包含 SVG 图像集合的 XML 文件。 这些图像可以用作网站或移动应用程序中的图标或插图。 每个图像都包含在一个单独的元素中,并且可以缓存 XML 文件,以便可以离线使用图标。 要使用 SVG 精灵,必须将 XML 文件加载到文档中。 然后可以通过引用元素的 ID 使用图像。 例如,要使用猫的图像,XML 文件将加载到文档中,图像将通过其 ID 引用: 然后通过引用 ID 可以在文档中的任何地方使用猫图像:图像可以使用 CSS 设置样式,并且可以使用“x”和“y”属性控制位置和大小:这些文件对徽标、图表和图标特别有用的原因有几个。 通常,符号和图像通过 .svg 文件定义为单独的图像。 另一种选择是将单个 sva 文件添加到多个 sva 图像。 有几种工具可用于计算像素位置和生成 CSS 代码。 使用 use 元素可以在页面上使用单个元素的次数没有限制。 外部图像将不会在旧浏览器中显示,例如 IE11 或更低版本。 为避免 HTML 标记错误,最好的替代方法是将完整的 SVG 插入 HTML 标记并使用其目标引用每个 Sprite。 每个单独的角色都被分配了一个精灵类,嵌入式 CSS 指示它们默认显示:无。可缩放图形有两种创建方式:手动或通过程序。 在后一种情况下,需要一行代码。 使用矢量图像程序时,您可以在虚拟绘图板上绘制图标,并使用各种形状、颜色和路径操作来操作它们。 在这种情况下,您可以使用 *svg 标签将图像直接写入 HTML 文档。 如果您有 VS 代码、首选 IDE,或者您使用 HTML,则可以将 SVG 图像用作 HTML 元素,从而将其包含在文档中。 如果您正确地执行了所有步骤,您应该能够创建如下所示的页面。包含可缩放图像的矢量图形文件称为 SVG 文件。当涉及到图像格式时,可以使用各种上下文来创建 SVG 图像。 使用 SVG 图像时,浏览器支持 HTML 元素,例如 *img 或 *svg。Svg 文件可以用作图标吗?图片来源:svgrepo 可缩放矢量图形 (SVG) 的主要优点是它们可以用作您网站上的图标因为它们是矢量图形。 矢量图形可以缩放为任意大小并具有相同的高质量。 由于这些文件很小并且压缩得很好,因此您的网站加载速度不会因此变慢。可缩放矢量图形 (SVG) 可以在使用矢量图像格式时使用可扩展标记语言 (XML) 语法绘制。 与固定大小的像素图像相反,SVG 是一种 XML 代码块,可以直接在浏览器中查看和呈现。 图片可以比文字小得多,也更简洁,可以更快地指示动作和信息。 直到电子宠物蛋、iMac 和掌上电脑进入我们的家庭的大约同一时间,SVG 图像文件格式才可用于网络。 通常,大多数 Web 浏览器不支持 SVG 格式,并且没有意识到这一点。 然而,直到 2017 年,网络浏览器由于缺乏支持而难以呈现 SVG。 当您使用图标网络字体或基于矢量的类型时,缩放不会有任何问题。在设计图标时,预制图标集为您提供了更有限的设计选项。 如果您想创建更通用的东西,请选择 svg 文件。 可以使用手动工具或软件程序创建 SVG 图标。 可以使用矢量图像程序在虚拟绘图板上绘制图标。 然后就可以导出.svg文件了,已经完成了。 您也可以从此 Evernote 列表中获得免费的 SVG 图标。 形状的尺寸由其宽度和高度决定,而其位置由其 x 和 y 决定。 此外,您可以通过创建包含类名称和样式的单独样式表来定义每个元素的样式。 在 Ycode 无代码生成器的帮助下,您可以更改这些图标的颜色以及更改背景颜色。如果您需要一种通用、可扩展且易于使用的图像格式,您应该考虑使用 svega。 由于其动画和透明功能,它是个人和商业项目的理想选择。 因为大多数人使用 SVG 而不是更常见的格式,它可能不受旧设备或浏览器的支持。如何使用 Svg Sprites?SVG Sprites 是减少对站点的 HTTP 请求数量的好方法。 它们是包含多个图像的单个文件,并且可以使用 元素访问每个图像。 例如,如果您有一个名为“sprite.svg”的文件,其中包含三个图像,您可以使用 和 元素访问每个图像: . 该软件包包括一组 Mustache 模板,用于以良好的旧 CSS 或一种主要的预处理器格式(Sass、Less 和 Stylus)创建样式表。 如果您更喜欢使用标准 API,则可以使用 Grunt 或 Gulp 包装器来简化您的生活。 默认情况下,Sprite 分为三种类型:mode、group 和 individual。 可以同时在不同的地方关闭输出模式。 在以其中一种预处理器格式(Sass、LESS、Stylus 等)创建 CSS Sprite 和样式表时,您必须了解特殊注意事项。您可以注入。 将包含 >title> 和 >description> 等元素的 YAML 文件放入您的 SVG 中。 命令行版本包含一个完整的命令行工具,它允许您使用各种输出格式。它是任何设计的重要组成部分,可以用来代表品牌或产品。 公司的图标应该既可识别又可扩展,尤其是在智能手机和平板电脑方面。 要使用 SVG 创建图标,首先包括代表您的图标类的 *svg> 元素,然后包括代表您的 *use** 元素 在 svg 文件中,包括 href 属性,后跟一个 octothorpe(箭头),最后是图标名称。 可以使用以下代码创建博客文章标题的示例:“如何使用 CSS 和 SVG 制作简单的 SVG 图标” svg class=”icon-title”> br>br> *xlink:href=#icon-post -title #iconposttitle 按照这些步骤,您可以轻松创建一个简单的 SVG 图标。 */octothorpe> 为什么要使用 Svg 图标我如何使用 SVG 精灵? 除了能够用于独立图像或嵌入 HTML 之外,还可以使用 SVG。 它适用于所有主流浏览器,包括 Internet Explorer 9 及更高版本。 为什么要使用 sva 图标? 内联 SVG 图标会为您的文件添加一些编码,因此如果您不介意,可以使用它们。 SVG 图标在普通显示器和 Retina 显示器上看起来都很棒。 如果这很重要,请使用内联 SVG 图标而不是字体图标。 SVG 图标优于 .NET 图标。 你如何在 React 中使用 Sprite? 从 '../letters' 重复导入; 从 '../reacts.' 重复导入导入 LetterSvg。 svg; 进入 '。 这封信被称为 scs。 (letter, color, size) (svg className=svg-letter) 按字母类型填写。 使用 href=*$*Letters*#letter-$letter=/svg); letterSvg.propTypes = 字母:React.Types.string,颜色:React。 导出letterSvg.default.Props时,选择字母(A) color:#f5f5f5f5', size: 20 ; 并使用 export default letterSvg; letter: 'A'我如何使用 Svg 图标?要使用 SVG 图标,您需要有矢量编辑程序,例如 Adob​​e Illustrator、Inkscape 或 Sketch。 创建图标后,您可以将其保存为 SVG 文件。 要在网站上使用图标,您可以将 SVG 文件嵌入到您的 HTML 代码中。可以通过多种方式在 HTML 和 CSS 中找到图标,但它们最常用于 Kaliop 的前端开发团队。 考虑到圆形,在形状的边缘之间放置更多的距离。 只需要指定像素拟合的尺寸,以便在低屏幕上获得最佳结果(如果您的分辨率设置为适当的范围)。 导出设计工具生成的图像时,通常会有一些标记和元数据。 此外,路径数据(在 d 属性中)可以非常精确。 要查看前后代码中删除或简化的内容,请使用 SVGOMG 等工具。 如果我们在源代码中硬编码填充,我们将无法通过 CSS 代码更改这些颜色,因此请确保单色图标没有此选项。如果您手动制作精灵,则应保留一个单独的文件夹包含您个人的 SVG 图标。 确保不需要设置样式的插图保存为单个 SVG 文件,并使用 <img href=url/to/illustration.svg> alt='> 将其包含在您的页面中。 如果您要为图像制作动画,建议您在 HTML 页面中包含完整的 SVG 代码。 一些文章建议使用文本标签来标记图标存储库中的每个 SVG 文件。 用一些 JavaScript (svg4everybody,svgxuse) 填充它,它就会工作。 或者,您可以在每个页面的 HTML 代码中包含您的 sprite。 每种方法都有许多优点和缺点。结合两种构建 Sprite 的方法是最有效的方法。 很大一部分 SVG 样式属性都是从它们的父级继承的。 不必将 stroke-width 属性设置为特定长度,但需要将其设置为相对于图标局部坐标的特定值。 如果您的路径达到视口的限制,一半的笔画将被切断。 可以使用一种简单的技术来创建具有两种不同填充值(也称为两种颜色)的图标。 如果您的页面具有合适的 HTML 结构,您的图标会很大并且很难看清。 这可以添加到您的页面的头部。它有点太甜太短了。 另一种方法是在 SVG 元素中使用宽度和高度属性。 但是,如果您必须在 CSS 中调整此图标的大小,则可能会有点困难。 如果您使用方形或 sharish 图标,您可以使用百分比值,因为它们大致表示图标宽度的百分比。 要填充渐变填充,我们必须使用 sva 渐变。 CSS linear-gradient(…) 不能用于 SVG 填充属性,因为它违反了 CSS 约定。如果您在移动设备上查看 SVG 文件,您还可以通过选择“图像另存为”将其保存到设备的图库中” 将 SVG 文件保存到设备的画廊时,它们在将来会有用。 如果您选择使用它们,您可以立即开始您自己的自定义插图。为什么 Svg 是图标的最佳选择因为 SVG 允许您缩放到任何尺寸而不会降低质量,它是图标的绝佳选择。 此外,使用 SVG,您可以更改、着色或动画图标的每个单独位,这是只能在图标字体中找到的功能。 如果您使用像素和透明度,PNG 文件比 SVG 文件更可取。我应该为图标使用 Svg 还是 Png?因为它们是矢量图像,它们可以缩放到任意大小并提供卓越的图像质量。 另一方面,PNG 不受应有的浏览器支持。 如果必须使用 Internet Explorer 8 或更高版本,最好使用 PNG,如果不需要,则使用 SVG。与 PNG 相比,使用 SVG 有几个优点,例如使用 sprite、图像或内联 SVG。 PNG 文件可以是原来的两倍大(对于 Retina 显示器)并且文件大小可以小一个数量级(不需要 Javascript 或 polyfills)而不会牺牲性能(不需要旧版浏览器)。 尽管 PNG 具有出色的设计能力,但就交付、带宽和范围而言,它是一个难以超越的设计工具。 如果大多数人只是展示形状或设计并需要对其进行更改,那么他们没有太多理由使用 SVG。 两者都有能力展示自己的优势和用例,但巴布亚新几内亚落后很多。 当处理矢量数据而不是图像数据时,浏览器需要付出更多的努力。 Chrome 等现代浏览器具有类似 CMS 的页面,其中包含数百个(实际上是 3-500 个)svg 图标,这些图标一打开就会让浏览器挂起 5 到 7 秒。如前所述,显着增加由于页面上的 SVG 数量而导致的浏览器负载。 如果是这种情况,您应该将 SVGS 转换为网络字体。 作为第二个选项,恢复为普通的旧 PNG。 SVG 图标缺乏与 PNG 图标相同的质量。 如果你不想处理真实的照片,你总是可以使用 .html 而不是 Svg。 免费的 SVG 图标现在可以在现代浏览器中使用,可以保存在服务器上并通过浏览器的服务器端代码加载到客户端。 它们不支持 CSS 3D 变换,除了不支持 CSS 3D 变换外,这在与按钮结合使用时可能会导致问题。也可以在不损失质量的情况下缩小或放大 SVG 图标。 虽然图标字体在缩放时通常不那么明显,但它们通常效果不佳。 最后,sVG 图标可以转换为按钮、选项卡和其他与用户交互的元素。 另一方面,图标字体通常不用作用户界面元素。 随着矢量图形设计变得越来越流行,越来越多的人转向 sva 来设计他们的图标和图形。 然而,虽然 SVG 图像的尺寸比 JPEG 图像大,但它们也具有更大的灵活性并且更易于编辑。 此外,它们可以按比例放大或缩小而不会降低质量,并且它们可以用于创建按钮、选项卡和其他用户界面元素。 如果您想要一种更灵活和可扩展的方式来创建图形,请使用 svega.Svg Vs。 Png 用于徽标和图标为了获得更好的效果,请使用矢量文件(例如 sva)制作徽标或图标。 有多种用于精细细节和纹理的 PNG,但 SVG 更常用于徽标、图标和其他平面图形。 因为较旧的浏览器可能不支持 SVG,您可能需要考虑使用 PNG 代替。如何在 HtmlSVG 精灵中使用 Svg 精灵是减少对您的页面发出的 HTTP 请求数量的好方法。 它们也非常适合减小页面的文件大小。 以下是如何使用它们:首先,为您的 SVG 文件创建一个文件夹。 接下来,在该文件夹中创建一个名为“sprite.svg”的文件。 该文件将包含所有 SVG 图标。 接下来,打开您的 HTML 文件并将以下代码添加到该部分: …… 将“/path/to/sprite.svg”替换为您的 sprite 文件的路径。 将“icon-name”替换为您要使用的图标的名称。 现在,当您在浏览器中查看您的 HTML 文件时,您应该会看到您指定的图标。因为它们是 XML 文档,所以它们是 application/svg 的内容类型至关重要。 由于您的 SVG 文件的内容类型未正确定义,您的浏览器可能无法解释它。 如果您使用的是 SVG,例如 img src=”image.svg”> 或 CSS 背景图像,并且文件已正确链接并且所有内容都正确显示,但浏览器不显示它,这可能是因为您的服务器正在提供带有 HTML 页面的文件,可以直接嵌入 SVG 元素。 如果您的 SVG 文件提供了正确的内容类型,那么您的浏览器应该可以解释它。Svg Sprites:为您的图形制作动画的最佳方式 HTML 嵌入可以提供一种创建自定义图形的简单方法,而无需矢量图形编辑器. 除了 SVG,您还可以使用 sprites 轻松生成动画图形。Svg Sprite 示例 SVG sprite 的一个示例是创建社交媒体图标包。 单独的图标将保存为单独的 SVG 文件,然后将创建一个引用所有单独图标的主文件。 当在浏览器中打开主文件时,各个图标将显示为单个图像。虽然我们喜欢图标字体,但也有一些缺点。 使用 gulp 创建 Sprite 很简单。 我们将插件链接到我们的网站(我们在全球范围内安装它们)。 gulpfile:: 插件可以在这里找到。 设置包含标签符号的 ansvg 文件。 当我们指出我们需要图标的地方时,它们必须被缩小。 资产目录只是一种将资产放在更方便的位置的方法。如果从图标中删除样式、填充和描边属性,您将无法查看通过 css 指定的样式。 请完成任务并运行它。 您必须附上页面。 我们有一个可以通过 Sprite 连接图标的工作系统,但还有更多的步骤需要采取。 如果您从 Illustrator 导出图标,您必须先启用像素网格,然后调整图标的大小和位置。 图标也应该从笔画转换而来。 这就是您需要在 iconmoon 文档中执行的操作。使用 Sprites 减少文件大小并提高速度当您创建一个 sprite 时,您实际上是在创建一个将在您的应用程序中多次使用的图像。 因此,使用 Sprite 来节省文件大小并提高应用程序的速度是一个好主意。 为了在你的 React 应用程序中使用 Sprite,你必须首先将它导入到你的项目中。 这可以通过将以下行添加到项目的 package.js 文件来完成。 要采取行动,请转到 https://www.npmjs.com/package/react-svg。 然后必须创建 LetterSvg 类的一个实例。 本课程将讨论字母的字母、颜色和大小。 你的参数是你想用作精灵的字母的名称。 颜色参数告诉我们精灵是什么。 大小参数定义为字母的像素。 创建 SVG Sprite 后,使用 LetterSvg 类创建它。 使用 useHref() 方法可以做到这一点。 必须在此方法中指定 Sprite 文件的 URL。 要确定精灵的颜色和大小,请使用 fill() 和 width() 方法。 完成设置精灵后,您可以使用 addChild() 方法将其添加到您的 React 应用程序中。 您需要将元素的名称添加到此方法中,并且它必须是该元素的子元素。 最后,您可以使用 animate() 方法为 Sprite 设置动画。 此方法的参数是持续时间和缓动。 动画完成所需的时间由动画的持续时间决定。 动画类型将由缓动参数指定。 动画有三个选项:default、cubic-bezier 和 animate。 在这种情况下,可以将一个新的 sprite 添加到您的 React 应用程序中以使其更具动态性,这要归功于它的添加。 使用 sprite,您可以加快应用程序用户界面的开发过程。Svg-sprite-loader 如果您正在寻找一种创建 SVG sprite 的方法,那么您可能需要查看 svg-sprite-loader。 这个库可以很容易地创建和维护你的 SVG 精灵,而且它也相对容易使用。Webpack 2.0 的迁移指南现在可用。 它可以在 v0 分支的 README 中找到。 目标 webpack 的配置选项是默认确定的。 如果要设置自定义行为,请使用此方法为您的实施模块定义路径。 在 SpriteFilename 选项中,您可以使用 [chunkname] 模式为每个块生成多个精灵。 返回 SVG 文件绝对路径的自定义函数可以根据包含或限制的加载器规则生成各种精灵。在 React 中使用精灵要在 React 中使用精灵,我们必须首先创建一个组件并传入作为属性的 Sprite id。 下面的代码创建了一个简单的 LetterSVG 组件,它使用 sprite id 来显示字母。