2011-12-02 20 views

risposta

6

È necessario impostare larghezza e l'altezza manualmente.

Questo può essere fatto tramite JavaScript onresize evento - il che va bene perché è quasi sempre necessario ridisegnare la superficie della tua tela in qualsiasi modo.

EDIT:

Da W3 spec, ecco l'interfaccia tela DOM:

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); 
}; 

L'elemento tela ha due attributi per controllare la dimensione del spazio di coordinate : larghezza e altezza. Questi attributi, quando specificato, devono avere valori che sono numeri interi non negativi validi. Per ottenere i valori numerici , è necessario utilizzare le regole per l'analisi degli interi non negativi . Se manca un attributo o se l'analisi del suo valore restituisce un errore , è necessario utilizzare il valore predefinito. Le impostazioni predefinite di larghezza attributo a 300, e l'altezza attribuiscono il valore predefinito è 150.

+0

quindi intendi per 'tela' devi farlo manualmente ma per 'div' no? – user1027167

+0

La tela corretta richiede altezza e larghezza. Non può essere fatto tramite Right and Bottom. – Steve

+0

quindi ho provato questo: http://jsfiddle.net/733zs/4/ Devo impostare manualmente la larghezza e l'altezza, ma canvas ha questi valori in offsetwidth e offsetheight – user1027167

0

Il posizionamento funziona correttamente. Stai solo disegnando la scatola nera nell'angolo in basso a destra della tela.

+0

anche, non può fare parte superiore e inferiore, o destra e sinistra: http://jsfiddle.net/Ptgga/ – circusdei

+0

perché non a sinistra e giusto allo stesso tempo? per div è funzionante. – user1027167

+0

La risposta di steve sembra corretta. – circusdei

1

Il rettangolo viene troncato perché l'elemento canvas è grande solo 300.150 pixel.

http://jsfiddle.net/733zs/3/

+0

Lo so, ma perché non è grande come la pagina? Il mio css dice 0px a sinistra 0px a destra 0px verso l'alto e 0 px verso il basso. – user1027167

+1

Questa risposta non risponde alla domanda dell'OP. – Steve