导航
×
   ❮   
HTML CSS JavaScript PHP Go Sass W3C ECMS

HTML 参考手册

HTML 元素(功能排序) HTML 浏览器支持 HTML 属性
HTML 属性 accept 属性 accept-charset 属性 accesskey 属性 action 属性 alt 属性 async 属性 autocomplete 属性 autofocus 属性 autoplay 属性 charset 属性 checked 属性 cite 属性 class 属性 cols 属性 colspan 属性 content 属性 contenteditable 属性 controls 属性 coords 属性 data 属性 data-* 属性 datetime 属性 defer 属性 dir 属性 dirname 属性 disabled 属性 download 属性 draggable 属性 enctype 属性 for 属性 form 属性 formaction 属性 headers 属性 height 属性 hidden 属性 high 属性 href 属性 hreflang 属性 http-equiv 属性 id 属性 ismap 属性 kind 属性 label 属性 lang 属性 list 属性 loop 属性 low 属性 max 属性 maxlength 属性 media 属性 method 属性 min 属性 multiple 属性 muted 属性 name 属性 novalidate 属性 onabort 属性 onafterprint 属性 onbeforeprint 属性 onbeforeunload 属性 onblur 属性 oncanplay 属性 oncanplaythrough 属性 onchange 属性 onclick 属性 oncontextmenu 属性 oncopy 属性 oncuechange 属性 oncut 属性 ondblclick 属性 ondrag 属性 ondragend 属性 ondragenter 属性 ondragleave 属性 ondragover 属性 ondragstart 属性 ondrop 属性 ondurationchange 属性 onemptied 属性 onended 属性 onerror 属性 onfocus 属性 onhashchange 属性 oninput 属性 oninvalid 属性 onkeydown 属性 onkeypress 属性 onkeyup 属性 onload 属性 onloadeddata 属性 onloadedmetadata 属性 onloadstart 属性 onmousedown 属性 onmousemove 属性 onmouseout 属性 onmouseover 属性 onmouseup 属性 onmousewheel 属性 onoffline 属性 ononline 属性 onpageshow 属性 onpaste 属性 onpause 属性 onplay 属性 onplaying 属性 onprogress 属性 onratechange 属性 onreset 属性 onresize 属性 onscroll 属性 onsearch 属性 onseeked 属性 onseeking 属性 onselect 属性 onstalled 属性 onsubmit 属性 onsuspend 属性 ontimeupdate 属性 ontoggle 属性 onunload 属性 onvolumechange 属性 onwaiting 属性 onwheel 属性 open 属性 optimum 属性 pattern 属性 placeholder 属性 poster 属性 preload 属性 readonly 属性 rel 属性 required 属性 reversed 属性 rows 属性 rowspan 属性 sandbox 属性 scope 属性 selected 属性 shape 属性 size 属性 sizes 属性 span 属性 spellcheck 属性 src 属性 srcdoc 属性 srclang 属性 srcset 属性 start 属性 step 属性 style 属性 tabindex 属性 target 属性 title 属性 translate 属性 usemap 属性 value 属性 width 属性 wrap 属性
HTML 全局属性 HTML 事件 HTML 颜色 HTML 画布 HTML 音频/视频 HTML 字符集 HTML 文档类型 HTML URL 编码 HTML 语言代码 HTML 国家代码 HTTP 状态消息 HTTP 请求方法 PX-EM 转换 键盘快捷键

HTML 标签

<!--> <!DOCTYPE> <a> <abbr> <acronym> <address> <applet> <area> <article> <aside> <audio> <b> <base> <basefont> <bdi> <bdo> <big> <blockquote> <body> <br> <button> <canvas> <caption> <center> <cite> <code> <col> <colgroup> <data> <datalist> <dd> <del> <details> <dfn> <dialog> <dir> <div> <dl> <dt> <em> <embed> <fieldset> <figcaption> <figure> <font> <footer> <form> <frame> <frameset> <h1> - <h6> <head> <header> <hr> <html> <i> <iframe> <img> <input> <ins> <kbd> <label> <legend> <li> <link> <main> <map> <mark> <meta> <meter> <nav> <noframes> <noscript> <object> <ol> <optgroup> <option> <output> <p> <param> <picture> <pre> <progress> <q> <rp> <rt> <ruby> <s> <samp> <script> <section> <select> <small> <source> <span> <strike> <strong> <style> <sub> <summary> <sup> <svg> <table> <tbody> <td> <template> <textarea> <tfoot> <th> <thead> <time> <title> <tr> <track> <tt> <u> <ul> <var> <video> <wbr>

HTML <canvas> 标签


实例

动态绘制一个红色矩形,并将其显示在 canvas 元素中:

<canvas id="myCanvas">
您的浏览器不支持 canvas 标签。
</canvas>

<script>
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
ctx.fillStyle = "#FF0000";
ctx.fillRect(0, 0, 80, 80);
</script>
亲自试一试 »

下面有更多实例。


定义和用法

<canvas> 标签用于通过脚本(通常是 JavaScript)动态绘制图形。

<canvas> 标签是透明的,并且只是图形的容器,您必须使用脚本来实际绘制图形。

<canvas> 元素中的任何文本都将在禁用 JavaScript 的浏览器和不支持 <canvas> 的浏览器中显示。


提示和注释

提示: 在我们的 HTML Canvas 画布教程 中了解有关 Canvas 元素的更多信息。

提示: 有关所有属性和方法的完整参考,请访问我们的 HTML Canvas 画布参考手册


浏览器支持

表中的数字指完全支持该元素的第一个浏览器版本。

元素          
<canvas> 4.0 9.0 2.0 3.1 9.0

属性

属性 描述
height pixels 设置 canvas 的高度。默认值是 150
width pixels 设置 canvas 的宽度。默认值是 300

全局属性

<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 文本。


更多实例

实例

另一个 canvas 实例:

<canvas id="myCanvas">
您的浏览器不支持 canvas 标签。
</canvas>

<script>
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
ctx.fillStyle = "red";
ctx.fillRect(20, 20, 75, 50);
//Turn transparency on
ctx.globalAlpha = 0.2;
ctx.fillStyle = "blue";
ctx.fillRect(50, 50, 75, 50);
ctx.fillStyle = "green";
ctx.fillRect(80, 80, 75, 50);
</script>
亲自试一试 »

默认CSS设置

大多数浏览器将使用以下默认值显示 <canvas> 元素:

实例

canvas {
  height: 150px;
  width: 300px;
}
亲自试一试 »

Copyright ©2020-2026 freew3c.com All Rights Reserved 提供的内容仅用于学习和测试,不保证内容的正确性。