centraggio utilizzando margin: 0 auto;
con display: block;
opere in quasi tutti i browser - quelli che sostengono <canvas>
di sicuro.
vivo esempio: http://jsbin.com/ovoziv/2
HTML
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>Centring Canvas</title>
</head>
<body>
<canvas></canvas>
</body>
</html>
CSS
canvas {
display: block;
background: #FFFFB7;
width: 550px;
height: 400px;
margin: 0 auto;
}
EDIT: Aggiornato risposta a centrare verticalmente troppo. Questo CSS farà il trucco:
canvas {
background-color: #FFFFB7;
width: 550px;
height: 400px;
position: absolute;
top: 50%;
left: 50%;
margin-left: -275px;
margin-top: -200px;
}
Ora la spiegazione. Per prima cosa posizioniamo la tela con il 50% di offset dal lato superiore e sinistro usando position: absolute
impostando top
e left
a 50%
. Quindi, poiché la tua tela ha una dimensione statica, aggiungiamo un margine negativo (che non dovresti mai fare quando l'elemento non è posizionato in modo assoluto) per metà della larghezza e della dimensione (550x400/2 = 275x200): margin-left: -275px; margin-top: -200px;
.
La tela verrà ora visualizzata al centro dello schermo. Se lo fai all'interno di un altro elemento e vuoi centrarlo, prova ad aggiungere position: relative;
a quell'elemento, quindi userà i suoi limiti anziché quelli del corpo.
vivo esempio qui: http://jsbin.com/ovoziv/6
stata specificata una larghezza in CSS come bene? –
@BramVanroy No? – user1431627
@Pete http://pastebin.com/wMz33J5Q – user1431627