SVG:一种新的 Web 图像格式

已发表: 2023-01-16

SVG 或可缩放矢量图形是一种越来越受欢迎的图像格式,因为它能够缩放到任何尺寸而不会降低质量。 所有主要浏览器也支持该格式。 SVG 优于其他图像格式的优势之一是它可以在 HTML 文档中内联使用。 这意味着 SVG 图像可以直接包含在 HTML 代码中,而不是使用传统的 img 元素。 但是,使用内联 SVG 有一些限制。 一个问题是 Internet Explorer 不支持内联 SVG。 另一个潜在的问题是某些浏览器的旧版本(例如 Firefox 3.6)可能难以正确显示内联 SVG。 尽管有这些限制,内联 SVG 可以成为创建在任何设备上看起来都很棒的响应式 Web 设计的有用工具。

使用 JavaScript,在 >object> 标签内插入一个 SVG。 与 HTML DOM 访问不同的是,对SVG DOM的访问是完全可用的。 如果不支持浏览器,将显示随附的文本消息。 我有轶事证据表明,当 SVG 以内联方式编写时,标记很难看,但在 Chrome 中编写时要好得多。 重要的是要记住内部 (SVG) 文档是通过内容文档访问的。 上面的代码包含所有有趣的东西作为 window.onload 函数。 它确保在我们开始操作之前加载 SVG 和主 DOM。

与嵌入文件相比,使用内联 SVG 文件可以获得许多优势。 此外,与 CSS 的交互要容易得多,因为可以像对待文档中的所有其他元素一样对待 SVG。 因此,可以更精确地避免悬停效果和其他类似交互。

首先需要 Aria 描述以获得更好的可访问性。 只需包括以下内容。 无需等到打开文档 svg后出现 URL title>。 如果需要,您必须将 aria-describedby 插入到 svg> 中。 这个 aria-attribute 可以在关于 Amelia 的页面上找到。

Martin Becker 将内联元素定义为 SVG。

你如何在 Html 中内联 Svg?

你如何在 Html 中内联 Svg?
图片来源:css-tricks.com

要在 HTML 中内联 SVG,您可以使用 标签。 此标签用于在 HTML 文档中嵌入SVG 文件。 该标签具有一些用于配置 SVG 文件的属性。 最重要的属性是“src”属性。 此属性指定 SVG 文件的 URL。

网页中包含的标记称为内联 SVG。 Viget 与 Dick's 体育用品合作创建了 Women's Fitness,以互动方式展示女性健身服装和配饰。 尽管我过去曾使用 .svg 文件作为图像源和图标字体,但这是我第一次真正以官方身份调查使用它们的机会。 它是最强大的用例之一,因为它内嵌在 HTML 中。 可以在 Backbone 应用程序(例如 Women's Fitness:)中使用 Backbone.js 覆盖此行。 设置属性 5.2 Internet Explorer 不支持 CSS 转换、转换和动画。 CSS 动画可用于变换旋转和属性,例如下图中的描边和填充。

svg 标签用途极为广泛,可用于多种用途。 您可以使用 svg> /svg> 标签将图像直接嵌入到 HTML 文档中。 为此,请在 VS 代码或您喜欢的 IDE 中打开 SVG 图像,复制代码并将其粘贴到 HTML 文档的“body”元素中。 如果一切按计划进行,您的网页应该与下图完全一样。 图像和外部对象元素在 SVG 中用于支持嵌入内容。 HTML“视频”、“音频”、“iframe”和“画布”元素在 SVG 中也可用。 可以将 SVG 图像嵌入到 HTML 文档中,以便在不需要单独文件的情况下提供图形。

你可以直接在 Html 中嵌入 Svg 吗?

HTML 页面包含可以直接嵌入其中的SVG 元素

什么是内联 Svg?

这只是包含带有内联 SVG 的HTML 标记的网页的 URL。


Svg 应该内联吗?

Svg 应该内联吗?
图片来源:wp.com

在为响应式设备设计时,不需要多个尺寸的相同 SVG,因为它们适用于高分辨率显示器。 根据 Sitepoint 的说法,内联 SVG 的优势在于比标准 SVG更易于访问,因为它在所有尺寸下都更加可见。

建议内联 SVG将减少 HTTP 请求的数量,从而减少页面的加载时间。 无论缓存是否存在,任何小数乘以 1k 都优于任何大数乘以相同数量的请求。 虽然有许多变量需要考虑,但这里有一些可以组合或单独使用的基本策略。 Magnus72Magnus72 691 silver badge3, bronze badges 0, 是 Claudiu Creanga 的徽章。 将图像包含在 SVG 中更有意义,因为它们可以被缓存。 我使用的 CSS 蒙版使我能够像在内联 SVG 中一样更改图标的颜色; 与 HTML 相比,我更喜欢这种跨浏览器兼容性的方法。

Web 开发人员面临着一个艰难的决定:通过数据 URI 在 CSS 中使用 SVG() 或使用 encodeURI 对 SVG 进行编码。 encodeURIComponent() 可以在所有现代浏览器中使用,但数据 URI 只能在基于 Webkit 的浏览器中找到。 xmlns=' http://www.w3.org/2000/svg' 是解决此问题的简单方法。 任何浏览器都可以轻松解释 SVG 文件。 因为它们缺少像素,所以在使用 SVG 文件制作网页图形时很难显示高质量的数码照片。 细节照片通常以 JPEG 格式拍摄效果更好。 SVG 图像只能使用现代浏览器查看。 使用SVG 命名空间 xmlns='http://www.w3.org/2000 /svg' 可以很简单地解决此问题。

为什么 Svg 文件不推荐用于徽标?

因为 SVG 基于矢量图形,所以它不能用于具有复杂纹理和精细细节的图像以及照片。 它最适用于徽标、图标和其他具有简单颜色和形状的平面图形。 此外,尽管大多数现代浏览器都支持 SVG,但旧版浏览器可能无法正常使用它。

Svg 图形的缺点是什么?

无法在 sva 图像中提供尽可能多的细节。 由于 SVG 基于点和路径而不是像素,因此它们无法提供与标准图像格式一样多的细节。