<canvas>: l'elemento Graphics Canvas
Utilizzare l' elemento HTML <canvas>
con l' API di scripting canvas o l' API WebGL per disegnare grafica e animazioni.
Attributi
height
L'altezza dello spazio delle coordinate in pixel CSS. Il valore predefinito è 150.
moz-opaque
Consente alla tela di sapere se la traslucenza sarà o meno un fattore. Se la tela sa che non c'è traslucenza, le prestazioni di pittura possono essere ottimizzate. Questo è supportato solo dai browser basati su Mozilla; usa invece lo standard canvas.getContext('2d', { alpha: false })
.
width
La larghezza dello spazio delle coordinate in pixel CSS. Il valore predefinito è 300.
Note d'uso
Contenuto alternativo
Dovresti fornire contenuto alternativo all'interno del blocco <canvas>
. Tale contenuto verrà visualizzato sia su browser meno recenti che non supportano canvas sia su browser con JavaScript disabilitato.
Tag </canvas> richiesto
A differenza dell'elemento <img>
, l'elemento <canvas>
richiede il tag di chiusura (</canvas>
).
Ridimensionamento della tela utilizzando CSS al posto di HTML
La dimensione visualizzata della tela può essere modificata utilizzando CSS, ma se lo fai l'immagine viene ridimensionata durante il rendering per adattarsi alla dimensione dello stile, il che può far sì che il rendering grafico finale venga distorto.
È meglio specificare le dimensioni della tela impostando gli attributi width
e height
direttamente sugli elementi <canvas>
, direttamente nell'HTML o utilizzando JavaScript.
Dimensione massima della tela
La dimensione massima di un elemento <canvas>
è molto grande, ma la dimensione esatta dipende dal browser. Di seguito sono riportati alcuni dati che abbiamo raccolto da vari test e altre fonti (ad es. Stack Overflow ):
Browser |
Altezza massima |
Largezza massima |
Area massima |
Chrome |
32.767 pixel |
32.767 pixel |
268.435.456 pixel (cioè 16.384 x 16.384) |
Firefox |
32.767 pixel |
32.767 pixel |
472.907.776 pixel (cioè 22.528 x 20.992) |
Safari |
32.767 pixel |
32.767 pixel |
268.435.456 pixel (cioè 16.384 x 16.384) |
IE |
8.192 pixel |
8.192 pixel |
? |
Nota: il superamento delle dimensioni o dell'area massime rende la tela inutilizzabile: i comandi di disegno non funzioneranno,
Esempi
HTML
Questo frammento di codice aggiunge un elemento canvas al documento HTML. Viene fornito un testo di riserva se un browser non è in grado di eseguire il rendering della tela o se non è in grado di leggere una tela.
<canvas width="300" height="300">
Testo alternativo che descrive cosa mostra questo elemento canvas.
</canvas>
Javascript
Quindi nel codice JavaScript, chiama HTMLCanvasElement.getContext()
per ottenere un contesto di disegno e inizia a disegnare sull'area di disegno:
const canvas = document.querySelector('canvas');
const ctx = canvas.getContext('2d');
ctx.fillStyle = 'green';
ctx.fillRect(10, 10, 100, 109);
Problemi di accessibilità
Contenuto alternativo
L'elemento <canvas>
di per sé è solo una bitmap e non fornisce informazioni su alcun oggetto disegnato. Il contenuto della tela non è esposto agli strumenti di accessibilità come lo è l'HTML semantico. In generale, dovresti evitare di utilizzare la tela in un sito Web o in un'app accessibile.