Div要素内にcanvas要素があります。キャンバスのサイズは変更できますが、垂直方向の中央に配置したいと思います。私はこのCSSアプローチを使用しています:
_<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Vertical Centering</title>
<style>
html,
body{
height:100%;
width:100%;
margin:0;
padding:0;
}
#container{
width:100%;
height:100%;
text-align:center;
font-size:0;
background:#aae;
}
#container:before{
content:'';
display:inline-block;
height:100%;
vertical-align:middle;
}
canvas{
width:400px;
height:300px;
display:inline-block;
vertical-align:middle;
background:#fff;
}
</style>
</head>
<body>
<div id="container">
<canvas></canvas>
</div>
</body>
</html>
_
あなたはそれがこのフィドルで働いているのを見ることができます: http://jsfiddle.net/8FPxN/
このコードは、ブラウザーがキャンバスの幅の下でサイズ変更されるまで、私にとってはうまく機能します。 _:before
_セレクターによって定義された仮想要素は最初の行にあり、キャンバスは2番目の行に配置されます。私はそれらを固定し、改行を避け、必要に応じてスクロールバーを表示しようとしています。コンテナに_overflow:auto
_ルールを追加すると、スクロールバーが表示されますが、行が途切れ続けます。
キャンバスのサイズは変更される可能性があるため、top:50%; margin-top:- ($canvas_height / 2);
アプローチはこれには適していません。そうかもしれませんが、JavaScriptを使用して_margin-top
_を制御することは好みません。 CSSだけが素晴らしいでしょう。
何か案は?ありがとう!
(限られたテストから)white-space: nowrap;
を追加すると機能するようです。
#container{
width:100%;
height:100%;
text-align:center;
font-size:0;
background:#aae;
white-space: nowrap;
}
White-space:nowrapを追加するとうまくいくはずです。 http://jsfiddle.net/David_Knowles/aEvG5/
#container{
width:100%;
height:100%;
text-align:center;
font-size:0;
white-space:nowrap;
}
編集:正しいフィドル