Naar de inhoud
Gratis naslagwerk over HTML
HTML leren en naslaan
Naslag / Afbeeldingen en media

Het element <canvas>

Gebruik het HTML-element <canvas> samen met de canvas scripting API of de WebGL API om afbeeldingen en animaties te tekenen.

Attributen

De attributen van dit element omvatten de globale attributen.

heightDe hoogte van de coördinatenruimte in CSS-pixels. Standaard 150.
moz-opaque Niet-standaard VerouderdLaat het canvas weten of doorschijnendheid een factor zal zijn. Als het canvas weet dat er geen doorschijnendheid is, kan de tekenprestatie worden geoptimaliseerd. Dit wordt alleen ondersteund door op Voorbeeld gebaseerde browsers; gebruik in plaats daarvan de gestandaardiseerde methode canvas.getContext('2d', { alpha: false }).
widthDe breedte van de coördinatenruimte in CSS-pixels. Standaard 300.

Gebruiksopmerkingen

Alternatieve inhoud

Je zou alternatieve inhoud binnen het <canvas>-blok moeten opnemen. Die inhoud wordt weergegeven zowel in oudere browsers die canvas niet ondersteunen als in browsers waarin JavaScript is uitgeschakeld.

Sluitende </canvas>-tag

In tegenstelling tot het <img>-element vereist het <canvas>-element de sluitende tag (</canvas>).

De grootte van het canvas instellen via CSS versus HTML

De weergegeven grootte van het canvas kan worden gewijzigd met CSS, maar als je dit doet, wordt de afbeelding tijdens het renderen geschaald om aan de gestylede grootte te voldoen, wat ertoe kan leiden dat de uiteindelijke weergave vervormd raakt.

Het is beter om de afmetingen van je canvas rechtstreeks in te stellen via de attributen width en height op het <canvas>-element, hetzij rechtstreeks in de HTML, hetzij met JavaScript.

Maximale canvasgrootte

De exacte maximale grootte van een <canvas>-element hangt af van de browser en omgeving. Hoewel in de meeste gevallen de maximale afmetingen groter zijn dan 10.000 x 10.000 pixels, beperken met name iOS-apparaten de canvasgrootte tot slechts 4.096 x 4.096 pixels. Zie canvasgroottelimieten in verschillende browsers en apparaten.

Opmerking

Het overschrijden van de maximale afmetingen of oppervlakte maakt het canvas onbruikbaar — tekenopdrachten werken dan niet meer.

Een offscreen canvas gebruiken

Een canvas kan worden gerenderd met de OffscreenCanvas-API, waarbij het document en het canvas van elkaar ontkoppeld zijn. Het voordeel is dat een workerthread het renderen van het canvas kan afhandelen, zodat de hoofdthread van je webapplicatie niet wordt geblokkeerd door canvasbewerkingen. Door het werk te parallelliseren, blijven andere UI-elementen van je webapplicatie responsief, zelfs als je complexe afbeeldingen op een offscreen canvas uitvoert. Zie voor meer informatie de documentatie van de OffscreenCanvas-API.

Toegankelijkheid

Alternatieve inhoud

Het <canvas>-element op zich is slechts een bitmap en biedt geen informatie over de getekende objecten. Canvasinhoud wordt niet blootgesteld aan toegankelijkheidshulpmiddelen zoals semantische HTML dat wel is. Over het algemeen zou je het gebruik van canvas in een toegankelijke website of app moeten vermijden. De volgende handleidingen kunnen helpen om het toegankelijker te maken.

Voorbeelden

HTML

Dit codefragment voegt een canvas-element toe aan je HTML-document. Er wordt een terugvaltekst opgegeven voor het geval een browser het canvas niet kan lezen of weergeven.

HTML
<canvas width="120" height="120">
  An alternative text describing what your canvas displays.
</canvas>

JavaScript

Roep vervolgens in de JavaScript-code HTMLCanvasElement.getContext() aan om een tekencontext te verkrijgen en te beginnen met tekenen op het canvas:

JS
const canvas = document.querySelector("canvas");
const ctx = canvas.getContext("2d");
ctx.fillStyle = "green";
// Add a rectangle at (10, 10) with size 100x100 pixels
ctx.fillRect(10, 10, 100, 100);

Resultaat

Technische samenvatting

Inhoudscategorieën Flow content, phrasing content, embedded content, palpable content.
Toegestane inhoud Transparant, maar zonder interactieve inhoud als afstammelingen, behalve <a>-elementen, <button>-elementen, <input>-elementen waarvan het type-attribuut checkbox, radio of button is.
Weglaten van tags Geen, zowel de begin- als eindtag zijn verplicht.
Toegestane ouders Elk element dat phrasing content accepteert.
Impliciete ARIA-rol Geen overeenkomstige rol
Toegestane ARIA-rollen Alle
DOM-interface HTMLCanvasElement

Zie ook

Verwante elementen