<canvas>: The CANVAS Element

Last updated: 2026-10-13

<canvas>The CANVAS Element

Draws graphics, animation or charts via JavaScript (2D or WebGL); the tag is just a blank canvas filled by script.

CategoryScripts & Embedding
Content ModelFlow content
Allowed ParentsAny element that accepts flow content
Content TagYes — requires closing </canvas> tag
StatusStandard

📝 Syntax

<canvas width="300" height="150"></canvas>

⚙️ Attributes

This element supports the global attributes plus the following:

AttributeValueDescription
widthCanvas width in pixels, default 300.
heightCanvas height in pixels, default 150.

▶ Example

Edit the code below and see the live result in the playground:

🌐 Browser Support

Browser ChromeChrome EdgeEdge FirefoxFirefox SafariSafari OperaOpera
<canvas> ✓ v1 ✓ v12 ✓ v1 ✓ v1 ✓ v1
Supported in all major browsers
Tip: canvas can't draw by itself—use getContext in JS; combine with CSS scaling for HiDPI.

❓ FAQ

QWhat is the difference between canvas and SVG?
A<canvas> is bitmap drawing: JS paints pixels frame by frame — ideal for games, large element counts, and real-time filters, but it blurs when scaled. SVG is vector: DOM nodes describe shapes, scale losslessly, and fit icons and charts. High-frequency pixel painting picks canvas; interactive vector graphics pick SVG.
QWhy should canvas size not be set with CSS alone?
ACanvas has two sizes: the HTML width/height attributes set the pixel buffer (default 300×150) while CSS size only stretches the display. Changing CSS alone stretches and blurs the buffer — set the attributes and CSS together, or scale by devicePixelRatio.
QWill canvas content be indexed by search engines?
ANo — the inside of a canvas is pixels with no text or DOM to crawl. Important text must live outside the canvas (headings, descriptions, accessibility alternatives), and complex apps should provide DOM fallback content inside the tag.
More case studies coming soon — check back later.

📚 Related Tutorials

Web-Tutorial.com

Web-Tutorial Tech Team

A team of developers maintaining programming tutorials. Each tutorial is written and reviewed by developers with expertise in that field. We work to keep our content accurate and reliable — if you spot an issue, please let us know.

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏