Debe establecer la anchura y altura de forma manual.
Esto se puede hacer a través de JavaScript onresize event, que está bien porque casi siempre es necesario volver a dibujar la superficie del lienzo en todos los aspectos.
EDIT:
De especificación W3, aquí es la interfaz DOM lienzo:
http://www.w3.org/TR/html5/the-canvas-element.html
interface HTMLCanvasElement : HTMLElement {
attribute unsigned long width;
attribute unsigned long height;
DOMString toDataURL(in optional DOMString type, in any... args);
void toBlob(in FileCallback, in optional DOMString type, in any... args);
object getContext(in DOMString contextId, in any... args);
};
El elemento canvas tiene dos atributos para controlar el tamaño de la espacio de coordenadas : anchura y altura. Estos atributos, cuando se especifique, deben tener valores que sean enteros válidos no negativos. Las reglas para que analizan números enteros no negativos se deben utilizar para obtener sus valores numéricos . Si falta un atributo, o si el análisis de su valor devuelve un error , se debe usar el valor predeterminado en su lugar. Los valores predeterminados de anchura de atributos a 300, y la altura de atributos por defecto a 150.
por lo que quiere decir 'lienzo', ¿tiene que hacerlo manualmente, pero para 'div' no? – user1027167
El lienzo correcto requiere alto y ancho. No se puede hacer a través de la derecha y abajo. – Steve
así que probé este: http://jsfiddle.net/733zs/4/ Tengo que establecer el ancho y la altura manualmente, pero el lienzo tiene estos valores en offsetwidth y offsetheight – user1027167