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之UI元素状态伪类选择器实例演示
Aug 11 HTML / CSS
button在IE6/7下的黑边去除方案
Dec 24 HTML / CSS
css3 伪元素和伪类选择器详解
Sep 04 HTML / CSS
CSS3实现可爱的小黄人动画
Jul 11 HTML / CSS
Html5 postMessage实现跨域消息传递
Mar 11 HTML / CSS
基于 HTML5 WebGL 实现的垃圾分类系统
Oct 08 HTML / CSS
html5的新增的标签和废除的标签简要概述
Feb 20 HTML / CSS
html5使用canvas绘制太阳系效果
Dec 15 HTML / CSS
解决html5中video标签无法播放mp4问题的办法
May 07 HTML / CSS
清除canvas画布内容(点擦除+线擦除)
Aug 12 HTML / CSS
仅仅使用 HTML/CSS 实现各类进度条的方式汇总
Nov 11 HTML / CSS
前端使用svg图片改色实现示例
Jul 23 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
关于手调机和数调机的选择
2021/03/02 无线电
怎么使 Mysql 数据同步
2006/10/09 PHP
php连接mysql数据库代码
2009/03/10 PHP
基于php常用函数总结(数组,字符串,时间,文件操作)
2013/06/27 PHP
改写函数实现PHP二维/三维数组转字符串
2013/09/13 PHP
Yii入门教程之Yii安装及hello world
2014/11/25 PHP
PHP利用APC模块实现大文件上传进度条的方法
2015/10/29 PHP
php实现HTML实体编号与非ASCII字符串相互转换类实例
2016/11/02 PHP
Yii 框架使用Forms操作详解
2020/05/18 PHP
简明json介绍
2008/09/28 Javascript
基于jQuery的Tab选项框效果代码(插件)
2011/03/01 Javascript
javascript重复绑定事件造成的后果说明
2013/03/02 Javascript
jQuery父级以及同级元素查找介绍
2013/09/04 Javascript
使用js声明数组,对象在jsp页面中(获得ajax得到json数据)
2013/11/05 Javascript
JS 数字转换研究总结
2013/12/26 Javascript
JavaScript插件化开发教程 (二)
2015/01/27 Javascript
javascript下拉框选项单击事件的例子分享
2015/03/04 Javascript
微信小程序 基础知识css样式media标签
2017/02/15 Javascript
浅谈JavaScript find 方法不支持IE的问题
2017/09/28 Javascript
使用RN Animated做一个“添加购物车”动画的方法
2018/09/12 Javascript
js使用cookie实现记住用户名功能示例
2019/06/13 Javascript
如何实现js拖拽效果及原理解析
2020/05/08 Javascript
JavaScript 事件代理需要注意的地方
2020/09/08 Javascript
vue 二维码长按保存和复制内容操作
2020/09/22 Javascript
微信小程序实现页面左右滑动
2020/11/16 Javascript
Python 实现12306登录功能实例代码
2018/02/09 Python
python3 破解 geetest(极验)的滑块验证码功能
2018/02/24 Python
美国最大的电子宠物训练产品制造商:PetSafe
2018/10/12 全球购物
广告学专业毕业生自荐信
2013/09/24 职场文书
全神贯注教学反思
2014/02/03 职场文书
高中学生干部学习的自我评价
2014/02/21 职场文书
村党支部公开承诺书
2014/05/29 职场文书
品牌服务方案
2014/06/03 职场文书
工作业绩不及格检讨书
2014/10/28 职场文书
2016年学校爱国卫生月活动总结
2016/04/06 职场文书
python turtle绘图
2022/05/04 Python