2012-07-02 6 views
10

Questo è estremamente semplice, ma non riesco a capire perché causi le barre di scorrimento. Ecco il codice:Impostazione dell'altezza e della larghezza dell'elemento canvas su window.innerHeight/innerWidth che causa le barre di scorrimento

CSS

body, canvas, html{margin:0;padding:0;border:0 none;} 
canvas{background:Black;} 

HTML

<html> 
    <head></head> 
    <body></body> 
</html>​ 

JavaScript

var canvas = document.createElement("canvas"); 
canvas.width = window.innerWidth; 
canvas.height = window.innerHeight; 
document.getElementsByTagName("body")[0].appendChild(canvas);​​​​​​​ 

Non dovrebbe questo solo essere la causa della tela di coprire la larghezza e altezza o f la finestra visibile? Ecco un esempio JSFiddle: http://jsfiddle.net/TyJYH/

+0

Gli elementi di contenimento, body e html, possono aggiungere margine o riempimento attorno al canvas. È possibile rendere la posizione del canvas assoluta o fissa, oppure impostare esplicitamente i margini e i paddock su 0. – kennebec

risposta

20

Ho risolto questo stesso problema impostando la proprietà CSS display del tag canvas a "blocco".

canvas { 
    display: block; 
} 
+1

GRAZIE, ho letto tante domande prima di trovare questa risposta. La soluzione più pazza che ho trovato era quella di "posizionare: fissa" un'immagine trasparente nell'angolo in basso a destra della finestra e usarla per ottenere le misurazioni. Questo è stato accettato e ottimizzato! –

+1

D'oh! Ho appena realizzato che quando '' è 'display: inline', ha altezza di riga. –

0

Questo sarà risolvere il problema:

canvas { 
    position:absolute; 
    left:0; 
    right:0; 
    bottom:0; 
    top:0; 
} 
+1

Grazie per l'input. Questo è più di un "trucco". La mia preoccupazione è più del perché specificare che un elemento sia della stessa altezza/larghezza della finestra visualizzabile causa una barra di scorrimento anche se sto specificando che tutti gli elementi abilitati hanno margine, riempimento e bordi zero. – BenR

+0

http://stackoverflow.com/questions/4288253/html5-canvas-100-width-height-of-viewport. Meno "hacky". :-) – RhinoWalrus

Problemi correlati