margin: 0 auto;
withを使用したセンタリングdisplay: block;
は、ほぼすべてのブラウザで機能します-<canvas>
確実にサポートするブラウザです。
実際の例: 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;
}
編集:回答を更新して、垂直方向にも中央揃えにしました。このCSSはトリックを行います:
canvas {
background-color: #FFFFB7;
width: 550px;
height: 400px;
position: absolute;
top: 50%;
left: 50%;
margin-left: -275px;
margin-top: -200px;
}
では説明です。最初に、とto をposition: absolute
設定して、上部と左側から 50% オフセットしてキャンバスを配置します。次に、キャンバスのサイズが静的であるため、幅とサイズの半分 (550x400/2 = 275x200) に負のマージンを追加します (要素が絶対配置されていない場合は絶対に行わないでください) 。top
left
50%
margin-left: -275px; margin-top: -200px;
画面中央にキャンバスが表示されます。これを別の要素内で行い、その要素を中央に配置したい場合は、position: relative;
その要素に追加してみてください。これにより、本体の境界ではなくその境界が使用されます。
ここのライブ例: http://jsbin.com/ovoziv/6