注:奥森图标的大小是通过设置嵌套i标签父级元素的“font-size”属性来改变的(给子元素设置font-size不起作用,color起作用),并不是设置宽、高 。
p{
font-size: 50px;
}
i{
font-size:80px;/*无效*/
color: aqua;
}
这里是一个奥森图标
我画的图形的源代码:
svg | canvas |
矢量图(不依赖分辨率),不能引入图片(图片不是矢量) | 标量图(依赖分辨率),可以引入jpg,png图片 |
使用 XML 描述 2D 图形的语言 |
通过 JavaScript 来绘制 2D 图形 |
支持事件处理器 |
不支持事件处理器 |
复杂度高会减慢渲染速度(任何过度使用 DOM 的应用都不快)
|
弱的文本渲染能力
|
适合带有大型渲染区域的应用程序(比如谷歌地图)。不适
合游戏应用。
|
适合图像密集型的游戏,还有统计图表 |
每个被绘制的图形均被视为对象。如果 SVG 对象的属性发生变化,那么浏览器能够自动重现图形。 | 一旦图形被绘制完成,它就不会继续得到浏览器的关注。如果其位置发生变化,那么整个场景也需要重新绘制。 |
//首先,找到
getContext("2d") 对象是内建的 HTML5 对象,拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。
var drawing=document.getElementById("myCanvas");
if(drawing.getContext){
var context=drawing.getContext("2d");
context.strokeStyle="red";
context.fillStyle="yellow";
}
var drawing=document.getElementById("myCanvas");
if(drawing.getContext){
var context=drawing.getContext("2d");
context.moveTo(100,100); //将绘图游标移动到该点
context.lineTo(200,200); //从上一个点开始到该点结束
context.strokeStyle="red"; //用红色描边
context.stroke(); //画线
}
var drawing=document.getElementById("myCanvas");
if(drawing.getContext){
var context=drawing.getContext("2d");
context.beginPath();
context.moveTo(0,0);
context.lineTo(200,200);
context.lineTo(100,350);
context.strokeStyle="red";
context.closePath();
context.stroke();
}