Dê à tela as seguintes propriedades de estilo css:
canvas {
padding-left: 0;
padding-right: 0;
margin-left: auto;
margin-right: auto;
display: block;
width: 800px;
}
Editar
Como essa resposta é bastante popular, deixe-me acrescentar mais alguns detalhes.
As propriedades acima irão centralizar horizontalmente a tela, div ou qualquer outro nó que você tenha em relação a seu pai. Não há necessidade de alterar as margens superior ou inferior e os preenchimentos. Você especifica uma largura e permite que o navegador preencha o espaço restante com as margens automáticas.
No entanto, se quiser digitar menos, você pode usar quaisquer propriedades abreviadas css que desejar, como
canvas {
padding: 0;
margin: auto;
display: block;
width: 800px;
}
Centralizar a tela verticalmente requer uma abordagem diferente. Você precisa usar o posicionamento absoluto e especificar a largura e a altura. Em seguida, defina as propriedades esquerda, direita, superior e inferior como 0 e deixe o navegador preencher o espaço restante com as margens automáticas.
canvas {
padding: 0;
margin: auto;
display: block;
width: 800px;
height: 600px;
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
}
A tela se centralizará com base no primeiro elemento pai position
definido como relative
ou absolute
, ou no corpo se nenhum for encontrado.
Outra abordagem seria usar display: flex
, que está disponível no IE11
Além disso, certifique-se de usar um doctype recente, como xhtml ou html 5.