创建:
在创建canvas元素时,它会创建一块矩形区域。默认情况下该矩形区域宽为300像素,高为150像素,但也可以自定义具体的大小或者设置canvas元素的其他特性。
canvas是行内元素

同大多数HTML元素一样,canvas元素也可以通过应用CSS的方式来增加边框,设置内边距、外边距等,而且一些CSS属性还可以被canvas内的元素继承。比如字体样式,在canvas内添加的文字,其样式默认同canvas元素本身是一样的。
此外,在canvas中为context设置属性同样要遵从CSS语法。例如,对context应用颜色和字体样式,跟在任何HTML和CSS文档中使用的语法完全一样。

在所有浏览器中,只有Internet Explorer不支持HTML5 Canvas。如果需要在Internet Explorer中使用canvas,可以选择使用名为explorercanvas的开源项目。使用explorercanvas时,需要先判断当前浏览器是否是Internet Explorer,如果是则在页面中嵌入script标签来加载explorercanvas:

<!--[if IE]><script src="excanvas.js"></script><![endif]-->

用法:

1.通过传入“2d”来获取一个二维上下文,这也是到目前为止唯一可用的上下文。提示 规范未来的某个版本中可能会增加对三维上下文的支持。
2.对上下文的很多操作都不会立即反映到页面上。beginPath、moveTo以及lineTo这些函数都不会直接修改canvas的展示结果。canvas中很多用于设置样式和外观的函数也同样不会直接修改显示结果。只有当对路径应用绘制(stroke)或填充(fill)方法时,结果才会显示出来。
3.圆形绘制。调用方法:context.arc(100, 100, 50, 0, 1/2*Math.PI, true);参数依次表示:圆心x坐标,圆心y坐标,半径,开始弧度,结束弧度,顺时针还是逆时针(true表示逆时针,false表示顺时针)。1/2Math.PI表示1/4圆的弧度。
4.变换(缩放、平移、旋转等)

 <!DOCTYPE HTML>
 <html lang="en">
   <head> 
       <meta charset="utf-8"> 
       <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
       <title>canvas</title> 
       <script> 
           function drawDiagonal() {
            var canvas = document.getElementById('diagonal'); 
              var context = canvas.getContext('2d'); 
              // 保存当前绘图状态  
              context.save();  
              // 向右下方移动绘图上下文  
              context.translate(70, 140);  
              // 以原点为起点,绘制与前面相同的线段  
              context.beginPath(); 
              context.moveTo(0, 0);  
              context.lineTo(70, -70);  
              context.stroke();  
              // 恢复原有的绘图状态 
              context.restore();
           }

              window.addEventListener("load", drawDiagonal, true);
        </script>
       </head>
       <body>
           <canvas id="diagonal" width="200" height="200"></canvas>
       </body>
 </html>

样式相关:

颜色、样式和阴影
属性    描述
fillStyle    设置或返回用于填充绘画的颜色、渐变或模式
strokeStyle    设置或返回用于笔触的颜色、渐变或模式
shadowColor    设置或返回用于阴影的颜色
shadowBlur    设置或返回用于阴影的模糊级别
shadowOffsetX    设置或返回阴影距形状的水平距离
shadowOffsetY    设置或返回阴影距形状的垂直距离
方法    描述
createLinearGradient()    创建线性渐变(用在画布内容上)
createPattern()    在指定的方向上重复指定的元素
createRadialGradient()    创建放射状/环形的渐变(用在画布内容上)
addColorStop()    规定渐变对象中的颜色和停止位置

线条:

线条样式
属性    描述
lineCap    设置或返回线条的结束端点样式
lineJoin    设置或返回两条线相交时,所创建的拐角类型
lineWidth    设置或返回当前的线条宽度
miterLimit    设置或返回最大斜接长度

矩形:

矩形
方法    描述
rect()    创建矩形
fillRect()    绘制“被填充”的矩形
strokeRect()    绘制矩形(无填充)
clearRect()    在给定的矩形内清除指定的像素

路径:

方法    描述
fill()    填充当前绘图(路径)
stroke()    绘制已定义的路径
beginPath()    起始一条路径,或重置当前路径
moveTo()    把路径移动到画布中的指定点,不创建线条
closePath()    创建从当前点回到起始点的路径
lineTo()    添加一个新点,然后在画布中创建从该点到最后指定点的线条
clip()    从原始画布剪切任意形状和尺寸的区域
quadraticCurveTo()    创建二次贝塞尔曲线
bezierCurveTo()    创建三次方贝塞尔曲线
arc()    创建弧/曲线(用于创建圆形或部分圆)
arcTo()    创建两切线之间的弧/曲线
isPointInPath()    如果指定的点位于当前路径中,则返回 true,否则返回 false

转换:

方法    描述
scale()    缩放当前绘图至更大或更小
rotate()    旋转当前绘图
translate()    重新映射画布上的 (0,0) 位置
transform()    替换绘图的当前转换矩阵
setTransform()    将当前转换重置为单位矩阵。然后运行 transform()

文本:

属性    描述
font    设置或返回文本内容的当前字体属性
textAlign    设置或返回文本内容的当前对齐方式
textBaseline    设置或返回在绘制文本时使用的当前文本基线

方法描述
fillText() 在画布上绘制“被填充的”文本
strokeText() 在画布上绘制文本(无填充)
measureText() 返回包含指定文本宽度的对象
图像绘制
方法    描述
drawImage()    向画布上绘制图像、画布或视频

像素操作:

属性    描述
width    返回 ImageData 对象的宽度
height    返回 ImageData 对象的高度
data    返回一个对象,其包含指定的 ImageData 对象的图像数据
方法    描述
createImageData()    创建新的、空白的 ImageData 对象
getImageData()    返回 ImageData 对象,该对象为画布上指定的矩形复制像素数据
putImageData()    把图像数据(从指定的 ImageData 对象)放回画布上

合成:

属性    描述
globalAlpha    设置或返回绘图的当前 alpha 或透明值
globalCompositeOperation    设置或返回新图像如何绘制到已有的图像上

其它:

方法    描述
save()    保存当前环境的状态
restore()    返回之前保存过的路径状态和属性
createEvent()     
getContext()     
toDataURL()     

附:http://www.w3school.com.cn/tags/html_ref_canvas.asp