Đối với <canvas>
các phần tử, các quy tắc CSS cho width
và height
đặt kích thước thực tế của phần tử canvas sẽ được vẽ vào trang. Mặt khác, các thuộc tính HTML của width
và height
đặt kích thước của hệ tọa độ hoặc 'lưới' mà API canvas sẽ sử dụng.
Ví dụ, hãy xem xét điều này ( 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>
Cả hai đều có cùng một thứ được vẽ trên chúng so với tọa độ bên trong của phần tử canvas. Nhưng trong khung vẽ thứ hai, hình chữ nhật màu đỏ sẽ rộng gấp đôi vì toàn bộ khung vẽ đang được kéo dài trên một diện tích lớn hơn theo quy tắc CSS.
Lưu ý: Nếu quy tắc CSS cho width
và / hoặc height
không được chỉ định thì trình duyệt sẽ sử dụng các thuộc tính HTML để định kích thước cho phần tử sao cho 1 đơn vị của các giá trị này bằng 1px trên trang. Nếu những thuộc tính này không được chỉ định sau đó họ sẽ mặc định một width
số 300
và một height
của 150
.