Para los <canvas>
elementos, las reglas CSS width
y height
establecen el tamaño real del elemento del lienzo que se dibujará en la página. Por otro lado, los atributos HTML de width
y height
establecen el tamaño del sistema de coordenadas o 'cuadrícula' que utilizará la API de lienzo.
Por ejemplo, considere esto ( jsfiddle ):
var ctx = document.getElementById('canvas1').getContext('2d');
ctx.fillStyle = "red";
ctx.fillRect(10, 10, 30, 30);
var ctx2 = document.getElementById('canvas2').getContext('2d');
ctx2.fillStyle = "red";
ctx2.fillRect(10, 10, 30, 30);
canvas {
border: 1px solid black;
}
<canvas id="canvas1" style="width: 50px; height: 100px;" height="50" width="100"></canvas>
<canvas id="canvas2" style="width: 100px; height: 100px;" height="50" width="100"></canvas>
A ambos se les ha dibujado lo mismo en relación con las coordenadas internas del elemento de lienzo. Pero en el segundo lienzo, el rectángulo rojo tendrá el doble de ancho porque las reglas de CSS extienden el lienzo como un todo en un área más grande.
Nota: Si las reglas CSS para width
y / o height
no se especifican, el navegador usará los atributos HTML para dimensionar el elemento de manera que 1 unidad de estos valores sea igual a 1px en la página. Si no se especifican estos atributos, los valores predeterminados serán a width
de 300
y a height
de 150
.