SVG 简介
SVG 是使用 XML 来描述二维图形和绘图程序的语言。
学习之前应具备的基础知识:
继续学习之前,你应该对以下内容有基本的了解:
- HTML
- XML 基础
如果希望首先学习这些内容,请在本站的首页选择相应的教程。
什么是SVG?
- SVG 指可伸缩矢量图形 (Scalable Vector Graphics)
- SVG 用来定义用于网络的基于矢量的图形
- SVG 使用 XML 格式定义图形
- SVG 图像在放大或改变尺寸的情况下其图形质量不会有所损失
- SVG 是万维网联盟的标准
- SVG 与诸如 DOM 和 XSL 之类的 W3C 标准是一个整体
SVG 是 W3C 推荐标准
SVG 于 2003 年 1 月 14 日成为 W3C 推荐标准。
如需阅读更多有关 W3C 的 SVG 活动的信息,请访问我们的 W3C 教程。
SVG 的历史和优势
在 2003 年一月,SVG 1.1 被确立为 W3C 标准。
参与定义 SVG 的组织有:太阳微系统、Adobe、苹果公司、IBM 以及柯达。
与其他图像格式相比,使用 SVG 的优势在于:
- SVG 可被非常多的工具读取和修改(比如记事本)
- SVG 与 JPEG 和 GIF 图像比起来,尺寸更小,且可压缩性更强。
- SVG 是可伸缩的
- SVG 图像可在任何的分辨率下被高质量地打印
- SVG 可在图像质量不下降的情况下被放大
- SVG 图像中的文本是可选的,同时也是可搜索的(很适合制作地图)
- SVG 可以与 Java 技术一起运行
- SVG 是开放的标准
- SVG 文件是纯粹的 XML
SVG 的主要竞争者是 Flash。
与 Flash 相比,SVG 最大的优势是与其他标准(比如 XSL 和 DOM)相兼容。而 Flash 则是未开源的私有技术。
查看 SVG 文件
Internet Explorer9,火狐,谷歌Chrome,Opera和Safari都支持SVG。
IE8和早期版本都需要一个插件 - 如Adobe SVG浏览器,这是免费提供的。
创建SVG文件
由于SVG是XML文件,SVG图像可以用任何文本编辑器创建,但它往往是与一个绘图程序一起使用,如Inkscape,更方便地创建SVG图像。
SVG 实例
简单的 SVG 实例
一个简单的SVG图形例子:
这里是SVG文件(SVG文件的保存与SVG扩展):
<?xml version="1.0" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg xmlns="http://www.w3.org/2000/svg" version="1.1"> <circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red" /> </svg>
SVG 代码解析:
第一行包含了 XML 声明。请注意 standalone 属性!该属性规定此 SVG 文件是否是"独立的",或含有对外部文件的引用。
standalone="no" 意味着 SVG 文档会引用一个外部文件 - 在这里,是 DTD 文件。
第二和第三行引用了这个外部的 SVG DTD。该 DTD 位于 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"。该 DTD 位于 W3C,含有所有允许的 SVG 元素。
SVG 代码以 <svg> 元素开始,包括开启标签 <svg> 和关闭标签 </svg> 。这是根元素。width 和 height 属性可设置此 SVG 文档的宽度和高度。version 属性可定义所使用的 SVG 版本,xmlns 属性可定义 SVG 命名空间。
SVG 的 <circle> 用来创建一个圆。cx 和 cy 属性定义圆中心的 x 和 y 坐标。如果忽略这两个属性,那么圆点会被设置为 (0, 0)。r 属性定义圆的半径。
stroke 和 stroke-width 属性控制如何显示形状的轮廓。我们把圆的轮廓设置为 2px 宽,黑边框。
fill 属性设置形状内的颜色。我们把填充颜色设置为红色。
关闭标签的作用是关闭 SVG 元素和文档本身。
注释:所有的开启标签必须有关闭标签!
SVG 在 HTML 页面
SVG 文件可通过以下标签嵌入 HTML 文档:<embed>、<object> 或者 <iframe>。
SVG的代码可以直接嵌入到HTML页面中,或您可以直接链接到SVG文件。
使用 <embed> 标签
<embed>:
- 优势:所有主要浏览器都支持,并允许使用脚本
- 缺点:不推荐在HTML4和XHTML中使用(但在HTML5允许)
语法:
<embed src="circle1.svg" type="image/svg+xml" />
使用 <object> 标签
<object>:
- 优势:所有主要浏览器都支持,并支持HTML4,XHTML和HTML5标准
- 缺点:不允许使用脚本。
语法:
<object data="circle1.svg" type="image/svg+xml"></object>
使用 <iframe> 标签
<iframe>:
- 优势:所有主要浏览器都支持,并允许使用脚本
- 缺点:不推荐在HTML4和XHTML中使用(但在HTML5允许)
语法:
<iframe src="circle1.svg"></iframe>
直接在HTML嵌入SVG代码
在Firefox、Internet Explorer9、谷歌Chrome和Safari中,你可以直接在HTML嵌入SVG代码。
注意:SVG不能直接嵌入到Opera。
<html> <body> <svg xmlns="http://www.w3.org/2000/svg" version="1.1"> <circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red"/> </svg> </body> </html>
链接到SVG文件
您还可以用<a>标签链接到一个SVG文件:链接到SVG文件
您还可以用<a>标签链接到一个SVG文件:
<a href="circle1.svg">View SVG file</a>
http://www.runoob.com/try/demo_source/circle1.svg
转自:http://www.runoob.com/svg/svg-tutorial.html
转自:SVG 教程 (一)
相关推荐
什么是SVG? SVG 指可伸缩矢量图形 (Scalable Vector Graphics) SVG 用来定义用于网络的基于矢量的图形 SVG 使用 XML 格式定义图形 SVG 图像在放大或改变尺寸的情况...SVG 与诸如 DOM 和 XSL 之类的 W3C 标准是一个整体
博文链接:https://lib.iteye.com/blog/141424
什么是SVG? •SVG 指可伸缩矢量图形 (Scalable Vector Graphics) •SVG 用来定义用于网络的基于矢量的图形 SVG 使用 XML 格式定义图形 •SVG 图像在放大或...•SVG 与诸如 DOM 和 XSL 之类的 W3C 标准是一个整体
SVG可缩放矢量图形(Scalable Vector Graphics)是基于可扩展标记语言(XML),用于描述二维矢量图形的一种图形格式。SVG是W3C(World Wide Web ConSor—tium国际互联网标准组织)在2000年8月制定的一种新的二维矢量...
是一款利用HTML5和SVG实现的可爱笑脸动画,它们是色彩各异的一组泥娃娃的脸,默认的时候就出现眨眼和微笑的动画,当你把鼠标滑过它们时,就像是感受到了主人的抚摸一样上下跳动起来,真的是非常可爱。
这是一个JS和SVG的教程对新手非常有用,网上SVG的东西太少了,很不好找
SVG 中文版第二部分 第一部分链接: http://download.csdn.net/detail/nutkerster/5088394
SVG.js是一个轻量级的JavaScript库,允许你轻松操作SVG和定义动画。这篇文章主要介绍了Svg.js实例教程及使用手册详解(一) 的相关资料,需要的朋友可以参考下
很好的一个矢量图开发语言,以xml格式编写,同时还可适用于web应用开发
Batik 是为想使用 svg 格式图片来实现各种功能的应用程序和 Applet 提供的一个基于 java 的工具包。 工程创建的目的是为开发者提供一系列可以结合或单独使用来支持特殊的 svg 解决方案的核心模块。模块主要有 ...
2.4 标签标签用于绘制一根折线 2.5 标签标签用于绘制矩形 2.6 标签
我们的示例和教程是使用Angular制作的,但是svg-to-ts也可以与其他框架或普通TypeScript / JavaScript一起使用。 为什么要使用svg-to-ts svg-to-ts可帮助您以可摇动和高性能的方式提供图标。 您可以通过博客文章...
通过将SVG图形编码,在css:background-image: url("data:image/svg+xml,encodeddSVG")或者border-image中使用SVG背景图片 此工具是学生时代写前端时候,将SVG图片encode为css background-image的小工具,后面域名...
一本关于SVG的入门教程,对于初学者有一定的帮助。
例如,传统图形需要指定矩形的每一个像素,而 SVG 只要说明矩形存在,并指出它的大小、位置和其它属性即可。 它的好处有很多,包括轻松地从数据库信息生成图形(如图或图表)的能力,以及向图形添加动画和交互性的...
切图必备的一个脚本插件!将形状图片转化为 svg路径的脚本!图片生成代码你敢信!搜切图生成代码有教程!没用砍我!
介绍一个简单的 SVG javascript 库建造安装依赖npm install 该库使用 gulp 来运行所有任务: 要构建运行gulp 。 文件将输出到 dist 文件夹。教程不。 可能也不会发生。去做对动画方法进行更广泛的测试创建更好的界面...