html5+svg学习指南之SVG基础知识


Posted in HTML / CSS onDecember 17, 2014

百度百科:

SVG可缩放矢量图形(Scalable Vector Graphics)是基于可扩展标记语言(XML),用于描述二维矢量图形的一种图形格式。SVG是W3C制定的一种新的二维矢量图形格式,也是规范中的网络矢量图形标准。SVG严格遵从XML语法,并用文本格式的描述性语言来描述图像内容,因此是一种和图像分辨率无关的矢量图形格式。

什么是SVG?

SVG 指可伸缩矢量图形 (Scalable Vector Graphics)

SVG 用来定义用于网络的基于矢量的图形

SVG 使用 XML 格式定义图形

SVG 图像在放大或改变尺寸的情况下其图形质量不会有所损失

SVG 是万维网联盟的标准

SVG 与诸如 DOM 和 XSL 之类的 W3C 标准是一个整体

Canvas 和 SVG 的区别:

SVG

SVG 是一种使用 XML 描述 2D 图形的语言。

SVG 基于 XML,这意味着 SVG DOM 中的每个元素都是可用的。您可以为某个元素附加 JavaScript 事件处理器。

在 SVG 中,每个被绘制的图形均被视为对象。如果 SVG 对象的属性发生变化,那么浏览器能够自动重现图形。

特点:

不依赖分辨率

支持事件处理器

最适合带有大型渲染区域的应用程序(比如谷歌地图)

复杂度高会减慢渲染速度(任何过度使用 DOM 的应用都不快)

不适合游戏应用

Canvas

Canvas 通过 JavaScript 来绘制 2D 图形。

Canvas 是逐像素进行渲染的。

在 canvas 中,一旦图形被绘制完成,它就不会继续得到浏览器的关注。如果其位置发生变化,那么整个场景也需要重新绘制,包括任何或许已被图形覆盖的对象。

特点:

 

依赖分辨率

不支持事件处理器

弱的文本渲染能力

能够以 .png 或 .jpg 格式保存结果图像

最适合图像密集型的游戏,其中的许多对象会被频繁重绘

svg 例子:


复制代码
代码如下:

<svg width="100%" height="100%" >
<circle cx="300" cy="60" r="50" stroke="#ff0" stroke-width="3" fill="red" />
</svg>

html5+svg学习指南之SVG基础知识

HTML / CSS 相关文章推荐
CSS3弹性伸缩布局之box布局
Jul 12 HTML / CSS
CSS3中文字镂空、透明值、阴影效果设置示例小结
Mar 07 HTML / CSS
css3实现超立体3D图片侧翻倾斜效果
Apr 16 HTML / CSS
一款利用html5和css3实现的3D滚动特效的教程
Jan 04 HTML / CSS
CSS3中的常用选择器使用示例整理
Jun 13 HTML / CSS
Android本地应用打开方法——通过html5写连接
Mar 11 HTML / CSS
H5 canvas中width、height和style的宽高区别详解
Nov 02 HTML / CSS
HTML5实时语音通话聊天MP3压缩传输3KB每秒
Aug 28 HTML / CSS
html5 CSS过度-webkit-transition使用介绍
Jul 02 HTML / CSS
HTML5 拖放功能实现代码
Jul 14 HTML / CSS
html5 canvas手势解锁源码分享
Jan 07 HTML / CSS
遮罩层 + Iframe实现界面自动显示的示例代码
Apr 26 HTML / CSS
canvas需要在标签里直接定义宽高
Dec 17 #HTML / CSS
使用canvas绘制贝塞尔曲线
Dec 17 #HTML / CSS
使用canvas绘制超炫时钟
Dec 17 #HTML / CSS
24个canvas基础知识小结
Dec 17 #HTML / CSS
html5使用canvas绘制文字特效
Dec 15 #HTML / CSS
html5使用canvas绘制太阳系效果
Dec 15 #HTML / CSS
html5使用canvas绘制一张图片
Dec 15 #HTML / CSS
You might like
php和jquery实现地图区域数据统计展示数据示例
2014/02/12 PHP
关于js和php对url编码的处理方法
2014/03/04 PHP
laravel获取不到session的三种解决办法【推荐】
2018/09/16 PHP
javascript-TreeView父子联动效果保持节点状态一致
2007/08/12 Javascript
Javascript 获取LI里的内容
2008/12/17 Javascript
ExtJs使用总结(非常详细)
2012/03/22 Javascript
Js动态添加复选框Checkbox的实例方法
2013/04/08 Javascript
Javascript中实现String.startsWith和endsWith方法
2015/06/10 Javascript
jQuery简单实现上下,左右滑动的方法
2016/06/01 Javascript
webpack中引用jquery的简单实现
2016/06/08 Javascript
详解微信小程序入门五: wxml文件引用、模版、生命周期
2017/01/20 Javascript
Django1.7+JQuery+Ajax验证用户注册集成小例子
2017/04/08 jQuery
Vue单页应用引用单独的样式文件的两种方式
2018/03/30 Javascript
BootStrap模态框闪退问题实例代码详解
2018/12/10 Javascript
vue中各种通信传值方式总结
2019/02/14 Javascript
JS实现动态倒计时功能(天数、时、分、秒)
2019/12/12 Javascript
vue自定义插件封装,实现简易的elementUi的Message和MessageBox的示例
2020/11/20 Vue.js
flask中使用SQLAlchemy进行辅助开发的代码
2013/02/10 Python
使用python的chardet库获得文件编码并修改编码
2014/01/22 Python
Python3.2模拟实现webqq登录
2016/02/15 Python
python实现画一颗树和一片森林
2018/06/25 Python
Python求解正态分布置信区间教程
2019/11/20 Python
捷克街头、运动和滑板一站式商店:BoardStar.cz
2019/10/06 全球购物
寻找迷宫的一条出路,o通路;X:障碍
2016/07/10 面试题
机电一体化专业应届本科生求职信
2013/09/27 职场文书
好人好事事迹材料
2014/02/12 职场文书
《登鹳雀楼》教学反思
2014/04/09 职场文书
小学爱国卫生月活动总结
2014/06/30 职场文书
自我介绍演讲稿范文
2014/08/21 职场文书
社区两委对照检查材料
2014/08/23 职场文书
高考作弊检讨书1500字
2015/02/16 职场文书
工程移交协议书
2016/03/24 职场文书
2016年艾滋病宣传活动总结
2016/04/01 职场文书
Flask搭建一个API服务器的步骤
2021/05/28 Python
浅谈Redis 中的过期删除策略和内存淘汰机制
2022/04/03 Redis
Python之Matplotlib绘制热力图和面积图
2022/04/13 Python