如何向网页添加 SVG

如何向网页添加 SVG,第1张

SVG 的添加方法

内联 HTML5

内联 XHTML

独立 SVG

嵌入

插件

目前常用的方法:

由于SVG文件是纯粹的XML,或许大家更为关心的是如何在Web浏览器中让SVG显示。要在浏览器中显示(前提是浏览器支持),可以通过几种方法来实现:

指向SVG文件地址

将SVG直接嵌套在HTML中

而将SVG图像嵌入到HTML文件有多种方法:

使用<iframe>元素来嵌入SVG图像

使用<img>元素来嵌入SVG图像

将SVG图像作为背景图像嵌入

直接使用<svg>元素

使用<embed>元素来嵌入SVG图像

使用<object>元素来嵌入SVG图像

如果你只了解可缩放矢量图形 (SVG),并希望体验 SVG,则你首先需要解决的问题之一是如何向基本网页添加 SVG。 如果你看一下相对基本的网页模板,便可获知如何开始执行此 *** 作。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta content="text/htmlcharset=utf-8" http-equiv="Content-Type" />

<title>My First SVG Page</title>

</head>

<body>

<p>SVG to be inserted here.</p>

</body>

</html>

可通过多种方法向此基本模板添加 SVG。下面的示例演示了一种直接执行此 *** 作的方法。

<?xml version="1.0" encoding="utf-8" standalone="no"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<!-- <meta content="text/htmlcharset=utf-8" http-equiv="Content-Type" />-->

<title>My First SVG Page</title>

</head>

<body>

<svg xmlns="http://www.w3.org/2000/svg" version="1.1"

width="200px" height="200px">

<rect x="0" y="0" width="100%" height="100%"

fill="none" stroke="black"/>

<circle cx="100" cy="100" r="50"

style="stroke: blackfill: red"/>

</svg>

</body>

</html>

提示 为提高现代浏览器之间的兼容性,请将上述示例代码以 xhtml 文件扩展名保存。通过将文件扩展名从 html 更改为 xhtml,可有效地将模板从 HTML 文档转换为 XHTML 文档。这就是为何添加 xml 声明(上一示例中的第一行)并注释掉 meta 元素的原因。有关上一示例的更多详细信息,请参见以下列表。

<?xml version="1.0" encoding="utf-8" standalone="no"?>

xml 声明是一个将文档标识为 XML/XHMTL 的浏览器处理指令。所需的版本特性会指定 XML 文档将遵循的 XML 标准的版本。可选 encoding 特性会指示浏览器如何基于特定字符集解释文档的关联字节(默认编码为 UTF-8)。可选 standalone="no" 特性指示在 DOCTYPE 元素中指定的文档类型定义 (DTD) 将不只是用于验证。请注意,实际上无需指定 standalone=”no”。存在外部标记声明(此示例中为 DTD)时会假定 standalone=”no” 值。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

从技术上来说,DOCTYPE

声明不是 HTML 元素。此声明是对 Web 浏览器的说明,它介绍了写入页面的标记语言版本。请注意,此声明指用于指定标记语言规则的

DTD,以便浏览器可以正确呈现内容。DOCTYPE 还允许你使用页面验证程序。在此示例中,XHTML 1.0 Transitional DTD

启用了所有 HTML 元素和特性,包括表象元素和弃用的元素(例如 <font>)。但不允许框架,并且必须将标记编写为格式正确的 XML。

<html xmlns="http://www.w3.org/1999/xhtml">

html 元素会告知浏览器,这是一个普通意义上的 HTML 文档,具体而言,它是由 DOCTYPE 指示的 XHTML 文档。xmlns 特性指定 XHTML 文档的 XML 命名空间。通常,开发人员在编写 XHTML 文档时应显式包括 XHTML xmlns 声明。

<head>

利用网页的 head 部分,可以定义页标题、提供搜索引擎信息、设置页位置、添加样式表、编写脚本等。

(例如 base、link、meta、script 和 style)。

<meta content="text/htmlcharset=utf-8" http-equiv="Content-Type" />

meta 元素提供有关文档的元数据。 元数据是有关文档内容的信息(对读者不可见)。此元数据可供浏览器或其他软件(例如,搜索引擎、文档管理系统等)使用。第一个模板(不具有 svg 元素)中的内容特性指定,在服务器传送实际页面内容之前,应先使用名为 Content-Type(其值为 text/htmlcharset=utf-8)的 HTTP 标头来提供页面(从 Web 服务器到客户端)。利用此过程,浏览器可使用正确的字符编码 (charset=utf-8) 来正常呈现传入页数据 (text/html)。第二个 XHTML (SVG) 示例中注释掉了 meta 元素,因为 XML/XHML 文档中已忽略使用 meta 元素指定字符编码,并且必须将其转换为 xml 声明。开发人员可在对 HTML 使用 meta 元素与对 XML/XHTML 使用 xml 声明之间进行切换。

<title>

通常,title 元素会在浏览器的选项卡中呈现其关联文本。

</head>

head 的结束元素。

<body>

body 元素是显示的 XHTML 文档的内容的容器。

<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="200px" height="200px">

svg 元素定义了 SVG 文档片断。xmlns 特性定义了 SVG 片断的命名空间。version 特性指示此文档片断遵循的 SVG 语言版本,width 和 height 特性定义 SVG 视区的大小(此示例中为 200 x 200 像素方形)。

<rect x="0" y="0" width="100%" height="100%" fill="none" stroke="black"/>

SVG rect 元素会从视区的左上角或点 (0, 0) 处开始绘制一个具有最大宽度和高度的黑色矩形,该矩形与 SVG 视区相对。此定位勾勒了给定 SVG 视区的轮廓。

<circle cx="100" cy="100" r="50" style="stroke: blackfill: red"/>

类似地,SVG circle 元素会绘制一个带黑色边框的红色圆圈,其半径为 50 像素。该圆圈位于 200 x 200 像素的 SVG 视区的中心位置。

</svg>

svg 的结束元素。

</body>

body 的结束元素。

</html>

html 的结束元素。

SVG 的呈现方法

还可使用其他方法来呈现 SVG。下表总结了这些方法。

方法

建议文件扩展名

所需的浏览器

优点和缺点

内联 HTML5.html天生支持 HTML5 中内联 SVG 的浏览器,例如 Windows Internet Explorer 9。

优点:可充分利用 HTML5 构造。

缺点:可能需要为不支持 HTML5 中的内联 SVG 的浏览器实现回调代码。

内联 XHTML.xhtml天生支持 SVG 的浏览器,例如 Internet Explorer 9。

优点:许多浏览器当前都支持基于 XHTML 的内联 SVG。

缺点:无法利用 HTML5 构造。

独立.svg天生支持 SVG 的浏览器,例如 Internet Explorer 9。

优点:可使用“嵌入”方法轻松嵌入现有内容中。

缺点:无法利用所有 HTML/XHTML 构造。

嵌入.xhtml天生支持 SVG 的浏览器,例如 Internet Explorer 9。

优点:通过使用嵌入,使得实现和回调行为变得相对简单。

缺点:为嵌入页中的 SVG 内容编写脚本可能会比较困难。

另外,一些浏览器可能不支持所有形式的嵌入,例如,通过 img 元素或通过 CSS background-image 样式引用 SVG。

插件.html天生支持或不支持 SVG 的浏览器。

优点:浏览器无需天生支持 SVG。统一各个浏览器间的 SVG 行为。

优点:插件可能会导致浏览器不稳定,W3C SVG 规范可能会过时,和/或插件提供者不再为插件提供支持(如 Adobe SVG Viewer 插件的情况)。

注意 Windows Internet Explorer 8 天生不支持 SVG,从而需要插件来呈现 SVG。但通过实现适当的回调代码(如本主题稍后所述),你可能不需要 SVG 插件。

在网页中使用svg有以下三种方式

1. svg归根结底来说是一种图像格式,虽然有别于jpeg,gif,png等位图图像格式,所以在网页中能嵌入图像的地方都可以嵌入svg,例如将svg文件设置为<img>元素的src属性,或者是给任意的元素设置背景图像,或者是设置为CSS3的属性border-image。但是这种方式的缺点也很明显,就是浏览器在渲染svg图像的时候,会将svg描述的矢量图像转换成栅格图像用于显示,这就失去了svg的一部分功能,svg是文本描述的图像格式,可能会有一些引用文件,比如其他的图像文件,外部脚本或者是web字体文件,在使用这种方式渲染svg时大多数浏览器会忽略引用文件。

2. <object>元素可以将外部的文件嵌入到html中,

3. 在网页中嵌入svg,最直接的方式莫过于将svg文件的内容直接写入html文本中,这样在网页中不仅可以显示svg图像,还可以使用脚本控制,用css添加样式,可谓是最好的做法。在XHTML中添加svg时,需要在顶级<svg>元素上设置xmlns=”http://www.w3.org/2000/svg”,它会改变该元素和其所有子节点的默认命名空间,对于HTML5文件,则可以省略这一步。svg在网页中默认以内联元素的方式显示。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11910286.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存