--- title: HTMLCanvasElement slug: Web/API/HTMLCanvasElement tags: - API - Canvas - HTML DOM - Interface - NeedsTranslation - Reference - TopicStub translation_of: Web/API/HTMLCanvasElement ---
The HTMLCanvasElement interface provides properties and methods for manipulating the layout and presentation of {{HtmlElement("canvas")}} elements. The HTMLCanvasElement interface also inherits the properties and methods of the {{domxref("HTMLElement")}} interface.
{{InheritanceDiagram(600, 120)}}
Inherits properties from its parent, {{domxref("HTMLElement")}}.
integer reflecting the {{htmlattrxref("height", "canvas")}} HTML attribute of the {{HTMLElement("canvas")}} element interpreted in CSS pixels. When the attribute is not specified, or if it is set to an invalid value, like a negative, the default value of 150 is used.integer reflecting the {{htmlattrxref("width", "canvas")}} HTML attribute of the {{HTMLElement("canvas")}} element interpreted in CSS pixels. When the attribute is not specified, or if it is set to an invalid value, like a negative, the default value of 300 is used.function that is Initially null. Web content can set this to a JavaScript function that will be called when the canvas is to be redrawn while the page is being printed. When called, the callback is passed a "printState" object that implements the MozCanvasPrintState interface. The callback can get the context to draw to from the printState object and must then call done() on it when finished. The purpose of mozPrintCallback is to obtain a higher resolution rendering of the canvas at the resolution of the printer being used. See this blog post.Inherits methods from its parent, {{domxref("HTMLElement")}}.
"2d" returns a {{domxref("CanvasRenderingContext2D")}} object, whereas calling it with "webgl" (or "experimental-webgl") returns a {{domxref("WebGLRenderingContext")}} object. This context is only available on browsers that implement WebGL.type parameter (defaults to png). The returned image is in a resolution of 96dpi.name. If type is not specified, the image type is image/png.Listen to these events using addEventListener().
webglcontextcreationerrorWebGLRenderingContext or WebGL2RenderingContext context.webglcontextlostWebGLRenderingContext or WebGL2RenderingContext object has been lost.webglcontextrestoredWebGLRenderingContext or WebGL2RenderingContext object.| Specification | Status | Comment |
|---|---|---|
| {{SpecName('Media Capture DOM Elements', '#html-media-element-media-capture-extensions', 'HTMLCanvasElement')}} | {{Spec2('Media Capture DOM Elements')}} | Adds the method captureStream(). |
| {{SpecName('HTML WHATWG', "#htmlcanvaselement", "HTMLCanvasElement")}} | {{Spec2('HTML WHATWG')}} | The method getContext() now returns a {{domxref("RenderingContext")}} rather than an opaque object.The transferControlToOffscreen()method has been added. |
| {{SpecName('HTML5.1', "scripting-1.html#the-canvas-element", "HTMLCanvasElement")}} | {{Spec2('HTML5.1')}} | |
| {{SpecName('HTML5 W3C', "scripting-1.html#the-canvas-element", "HTMLCanvasElement")}} | {{Spec2('HTML5 W3C')}} | Initial definition. |
{{Compat("api.HTMLCanvasElement")}}