div要素の高さを画面100%にする

Cocos2d-xの開発をする際、CocosStudioなんかでプロジェクトを作成すると、

トップページの index.html も作られます。

デフォルトでは、body要素の中に、canvas要素とscript要素があるのみです。

今回、大富豪を公開するにあたり、

画面を左右に分け、片側にゲーム(canvas要素)、もう片側に違うものを表示するエリアを作りたいと考えました。

というわけで、Bootstrapのグリッドシステムを使って、画面を左右に分けました。


<div class=”container-fluid”>

<div class=”row”>

<div class=”column col-md-10″><!– ゲーム部分 –></div>

<div class=”column col-md-2″><!– その他部分 –></div>

</div>

</div>


そして、ゲーム部分にcanvas要素を入れてみたのですが、ゲームが小さく表示されるという結果になってしまいました。

rowやcolumnにcssで「height:100%;」と指定してもダメです。

デフォルトでは、ゲームはcanvas要素で囲まれていますが、Cocos2d-xのソースを見たところ、div要素で囲んでもいいようです。

(project.jsonで指定したidを、canvasまたはdivのidプロパティに指定する必要がありますが)

なので、canvasをdivに変えてみたりもしたのですが、何も変わりません。

スポンサーリンク
レクタングル大1

そこで調べてみると、cssの仕様で、ある要素のheightに相対値(%)が指定された場合、その高さは親要素の高さに対して計算されるのだそうです。
親要素の高さが指定されていない場合は、要素の高さはautoとして計算されます。

なので今回の場合、rowとcolumnだけでなく、その親要素となる<div class=”container-fluid”><body><html>すべてに「height:100%;」を指定する必要があったのです。


html, body {height: 100%;}

.container-fluid, .row, .column {height: 100%;}


これで無事に、画面いっぱいゲームが表示されるようになりました。

スポンサーリンク
レクタングル大1
レクタングル大1

シェアする

  • このエントリーをはてなブックマークに追加

フォローする