我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SVG如何内联到HTML中

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

SVG如何内联到HTML中

这篇文章主要讲解了“SVG如何内联到HTML中”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SVG如何内联到HTML中”吧!

位图与矢量图

以前,浏览器中显示的图形,例如jpeg、gif等,都是位图,这些图像格式是基于光栅的。在光栅图像中,图像文件定义了图像中每个像素的颜色值。浏览器需要读取这些值并做出相应行动。这种图像的再现能力比较强,但是在某些情形下会显得不足。例如,当浏览器以不同大小显示一副图像时,通常会产生锯齿边缘,这时,浏览器不得不为那些在原始图像中不存在的像素插入或猜测数值;这样会导致图像失真。此外,针对位图进行动画,最多也仅限于生成“翻动书本”类型的动画,即快速连续地显示单独图像。

矢量图通过指定为确定每个像素的值所需的指令而不是指定这些值本身,克服了这些困难中的一部分。例如,向量图形不再为一个直径一英寸的圆提供像素值,而是告诉浏览器创建一个直径一英寸的圆,然后让浏览器(或插件)做其余事情。这消除了光栅图形的许多限制;使用向量图形,浏览器只要知道它必须画一个圆。如果图像需要以正常大小的三倍来显示,那么浏览器只要按正确的大小画圆而不必执行光栅图像通常的插入法。类似地,浏览器接收的指令可以更容易地与外部信息源(如应用程序和数据库)绑定,要对图像制作动画,浏览器只要接收有关如何操纵属性(如半径或颜色)的指令即可。

HTML体系中,最常用的绘制矢量图的技术是SVG和HTML5新增加的canvas元素。这两种技术都支持绘制矢量图和光栅图。

SVG概述

可缩放矢量图形(Scalable Vector Graphics,简称SVG)是一种使用XML来描述二维图形的语言(SVG严格遵从XML语法)。 SVG允许三种类型的图形对象:矢量图形形状(例如由直线和曲线组成的路径)、图像和文本。 可以将图形对象(包括文本)分组、样式化、转换和组合到以前呈现的对象中。 SVG 功能集包括嵌套转换、剪切路径、alpha 蒙板和模板对象。

SVG绘图是交互式和动态的。 例如,可使用脚本来定义和触发动画。这一点与Flash相比很强大。Flash是二进制文件,动态创建和修改都比较困难。而SVG是文本文件,动态操作是相当容易的。而且,SVG直接提供了完成动画的相关元素,操作起来非常方便。

SVG与其他Web标准兼容,并直接支持文档对象模型DOM。这一点也是与HTML5中的canvas相比很强大的地方(这里注意,SVG内部也是用一个类似的canvas这样的东西来展示SVG图形,到后面你会发现很多特性和HTML5的canvas还有点像;文中如果没明确说明是SVG的canvas的话,都代指HTML5中的canvas元素)。因而,可以很方便的使用脚本实现SVG的很多高级应用。而且SVG的图形元素基本上都支持DOM中的标准事件。可将大量事件处理程序(如“onmouseover”和“onclick”)分配给任何SVG图形对象。 虽然SVG的渲染速度比不上canvas元素,但是胜在DOM操作很灵活,这个优势完全可以弥补速度上的劣势。

SVG既可以说是一种协议,也可以说是一门语言;既是HTML的一个标准元素,也是一种图片格式。

SVG并不是HTML5中的东西,但是也算页面时兴的技术之一,姑且也放到这个专题下了。

SVG与其它图片格式的比较

SVG与其它的图片格式相比,有很多优点(很多优点来源于矢量图的优点):

• SVG文件是纯粹的XML, 可被非常多的工具读取和修改(比如记事本)。

• SVG 与JPEG 和GIF图像比起来,尺寸更小,且可压缩性更强。

• SVG 是可伸缩的,可在图像质量不下降的情况下被放大,可在任何的分辨率下被高质量地打印。

• SVG 图像中的文本是可选的,同时也是可搜索的(很适合制作地图)。

• SVG 可以与 Java 技术一起运行。

• SVG 是开放的标准。

SVG与Flash的比较

SVG 的主要竞争者是Flash。与Flash相比,SVG 最大的优势是它与其他标准(比如XSL和DOM)相兼容,操作方便,而Flash则是未开源的私有技术。其它的比如存储的格式,动态生成图形等方面,SVG也占有很大的优势。

SVG的呈现方式

关于支持HTML5与SVG的浏览器不是这里讨论的重点,基本上装上最新的Chrome或者FireFox浏览器就差不多了(IE用户请装IE9就对了,至于IE9之前的版本,需要装SVG的插件,这里就直接略过了)。对于直接支持SVG的浏览器,SVG主要采用两面两种呈现的方式。

内联到HTML

SVG是标准的HTML元素,直接写到HTML中就可以了,看下面的例子:

复制代码 代码如下:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE html>

<html>

<head>

<!-- <meta content="text/html; charset=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: black; fill: red;"/>

</svg>

</body>

</html>

请注意开头的部分xml声明,与svg的命名空间xmlns、版本version等部分,主要是考虑兼容性的问题;这些部分在HTML5中基本都可以不用写了(写不写还是自己瞧着办吧)。

独立SVG文件

独立SVG指的是通过使用svg文件扩展名来提供向量图形文件格式。在浏览器中嵌入这个svg文件就可以使用了。

1.独立的SVG文件/页面,定义的模板基本就像下面的一样:

复制代码 代码如下:

<svg width="100%" height="100%">

<!-- SVG markup here. -->

</svg>

把这样的文本文件保存成以svg为扩展名的文件,例如sun.svg,这样的文件可以直接用浏览器打开浏览,也可以作为引用嵌入到别的页面中。

2.HTML引用外部的SVG文件。

使用object或者img元素嵌入svg图形就可以了,例如下面的小例子:

复制代码 代码如下:

<!DOCTYPE html>

<html>

<head>

<title> My First SVG Page</title>

</head>

<body>

<object data="sun.svg" type="image/svg+xml"

width="300px" height="300px">

<!-- Implement fallback code here, or display a message: -->

<p>Your browser does not support SVG - please upgrade to a modern browser.</p>

</object>

<img class="lazy" data-src="sun.svg" alt="svg not supported!" />

</body>

</html>

其实SVG也可以放在其他的XML文档中,也可以像其他的XML文档一样,使用XML相关的技术格式化和验证,这个不是重点,此处略去了。

SVG的渲染顺序

SVG是严格按照定义元素的顺序来渲染的,这个与HTML靠z-index值来控制分层不一样。在SVG中,写在前面的元素先被渲染,写在后面的元素后被渲染。后渲染的元素会覆盖前面的元素,虽然有时候受透明度影响,看起来不是被覆盖的,但是SVG确实是严格按照先后顺序来渲染的。

注意:SVG是以XML定义的,所以是大小写敏感的,这点与HTML不一样。

感谢各位的阅读,以上就是“SVG如何内联到HTML中”的内容了,经过本文的学习后,相信大家对SVG如何内联到HTML中这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

SVG如何内联到HTML中

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何使用 GOTK3 和 librsvg 在 Go 中加载内联 SVG?

php小编柚子将为大家介绍如何在Go语言中使用GOTK3和librsvg加载内联SVG。GOTK3是一个用于创建跨平台GUI应用程序的Go语言绑定库,而librsvg是一个用于渲染SVG图像的库。通过结合使用这两个库,我们可以在Go语言中轻
如何使用 GOTK3 和 librsvg 在 Go 中加载内联 SVG?
2024-02-09

css中如何使用SVG图标

这篇文章主要为大家展示了“css中如何使用SVG图标”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“css中如何使用SVG图标”这篇文章吧。使用 SVG 图标没有理由不使用 SVG 图标:.log
2023-06-27

vue3+vite中如何使用svg图标

这篇“vue3+vite中如何使用svg图标”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue3+vite中如何使用svg
2023-06-30

Python如何提取html中文本到txt

这篇文章主要介绍了Python如何提取html中文本到txt问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-01-03

html如何连接到css

在 html 中连接到 css 有两种主要方法:在 \ 部分使用 \ 元素,指定要连接的样式表的 url。在 \ 元素内直接编写 css 代码。两种方法各有优缺点,对于大多数情况,使用 \ 元素连接到外部样式表是首选方法。如何在
html如何连接到css
2024-04-11

如何将javascript添加到HTML页面中

HTML页面中随着Web应用程序的不断发展,JavaScript正变得越来越流行,它可以为网页和Web应用程序提供动态交互和更复杂的功能。本文将帮助你学习如何将JavaScript添加到HTML页面中。一、内部JavaScript内部JavaScript是指直接在HTML文档中放置JavaScript代码。该代码必须被包含在<script>标签中,并放置在<head>或<bod
2023-05-14

编程热搜

目录