当前位置:首页 > HTML5教程 > HTML5技巧

HTML<canvas>标签

html <canvas> 标签

  • <button>

实例

如何通过 canvas 元素来显示一个红色的矩形:

<canvas id="mycanvas"></canvas>

<script type="text/javascript">

var canvas=document.getelementbyid('mycanvas');
var ctx=canvas.getcontext('2d');
ctx.fillstyle='#ff0000';
ctx.fillrect(0,0,80,100);

</script>

亲自试一试

浏览器支持

元素 chrome ie firefox safari opera
<canvas> 4.0 9.0 2.0 3.1 9.0

internet explorer 9+, firefox, opera, chrome 以及 safari 支持 <canvas> 标签。

注释:internet explorer 8 以及更早的版本不支持 <canvas> 标签。

定义和用法

<canvas> 标签定义图形,比如图表和其他图像。

<canvas> 标签只是图形容器,您必须使用脚本来绘制图形。

html 4.01 与 html 5 之间的差异

<canvas> 标签是 html 5 中的新标签。

属性

new : html5 中的新属性。

属性 值 描述
height pixels 设置 canvas 的高度。
width pixels 设置 canvas 的宽度。

全局属性

<canvas> 标签支持 html 中的全局属性。

事件属性

<canvas> 标签支持 html 中的事件属性。

<canvas> 的历史

这个 html 元素是为了客户端矢量图形而设计的。它自己没有行为,但却把一个绘图 api 展现给客户端 javascript 以使脚本能够把想绘制的东西都绘制到一块画布上。

<canvas> 标记由 apple 在 safari 1.3 web 浏览器中引入。对 html 的这一根本扩展的原因在于,html 在 safari 中的绘图能力也为 mac os x 桌面的 dashboard 组件所使用,并且 apple 希望有一种方式在 dashboard 中支持脚本化的图形。

firefox 1.5 和 opera 9 都跟随了 safari 的引领。这两个浏览器都支持 <canvas> 标记。

我们甚至可以在 ie 中使用 <canvas> 标记,并在 ie 的 vml 支持的基础上用开源的 javascript 代码(由 google 发起)来构建兼容性的画布。 参见:http://excanvas.sourceforge.net/。

<canvas> 的标准化的努力由一个 web 浏览器厂商的非正式协会在推进,目前 <canvas> 已经成为 html 5 草案中一个正式的标签。 参见:http://www.whatwg.org/specs/web-apps/current-work/

<canvas> 标记和 svg 以及 vml 之间的差异

<canvas> 标记和 svg 以及 vml 之间的一个重要的不同是,<canvas> 有一个基于 javascript 的绘图 api,而 svg 和 vml 使用一个 xml 文档来描述绘图。

这两种方式在功能上是等同的,任何一种都可以用另一种来模拟。从表面上看,它们很不相同,可是,每一种都有强项和弱点。例如,svg 绘图很容易编辑,只要从其描述中移除元素就行。

要从同一图形的一个 <canvas> 标记中移除元素,往往需要擦掉绘图重新绘制它。

如何使用 <canvas> 标记绘图

大多数 canvas 绘图 api 都没有定义在 <canvas> 元素本身上,而是定义在通过画布的 getcontext() 方法获得的一个“绘图环境”对象上。

canvas api 也使用了路径的表示法。但是,路径由一系列的方法调用来定义,而不是描述为字母和数字的字符串,比如调用 beginpath() 和 arc() 方法。

一旦定义了路径,其他的方法,如 fill(),都是对此路径操作。绘图环境的各种属性,比如 fillstyle,说明了这些操作如何使用。

注释:canvas api 非常紧凑的一个原因上它没有对绘制文本提供任何支持。要把文本加入到一个 <canvas> 图形,必须要么自己绘制它再用位图图像合并它,或者在 <canvas> 上方使用 css 定位来覆盖 html 文本。

相关页面

html 教程:html <canvas> 元素

html dom 参考手册:html dom canvas 对象

  • <button>

【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!