Dé al lienzo las siguientes propiedades de estilo CSS:
canvas {
padding-left: 0;
padding-right: 0;
margin-left: auto;
margin-right: auto;
display: block;
width: 800px;
}
Editar
Dado que esta respuesta es bastante popular, permítanme agregar un poco más de detalles.
Las propiedades anteriores centrarán horizontalmente el lienzo, div o cualquier otro nodo que tenga en relación con su padre. No es necesario cambiar los márgenes ni los rellenos superior o inferior. Usted especifica un ancho y deja que el navegador llene el espacio restante con los márgenes automáticos.
Sin embargo, si desea escribir menos, puede usar las propiedades abreviadas de CSS que desee, como
canvas {
padding: 0;
margin: auto;
display: block;
width: 800px;
}
Sin embargo, centrar el lienzo verticalmente requiere un enfoque diferente. Debe utilizar el posicionamiento absoluto y especificar tanto el ancho como el alto. Luego, establezca las propiedades izquierda, derecha, superior e inferior en 0 y deje que el navegador llene el espacio restante con los márgenes automáticos.
canvas {
padding: 0;
margin: auto;
display: block;
width: 800px;
height: 600px;
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
}
El lienzo se centrará en función del primer elemento padre que se haya position
establecido en relative
o absolute
, o el cuerpo si no se encuentra ninguno.
Otro enfoque sería utilizar display: flex
, que está disponible en IE11
Además, asegúrese de utilizar un tipo de documento reciente, como xhtml o html 5.