在html5中将div放在画布上

时间:2013-04-07 10:44:43

标签: css html5 canvas center

我正试图在我的页面中心的画布上放置一个div元素(用于游戏)。它是关于我想在开始游戏之前在画布上显示的开始屏幕(此开始屏幕具有诸如“玩游戏”,“设置”等选项)。问题是我无法完成这项工作,我在Google上搜索了很多,我看过很多例子,但似乎没有一个能为我工作。这是我的代码:

<div id="gamecontainer">
            <canvas id="myCanvas" width="800" height="600">
                Sorry, <strong>CANVAS</strong> is not supported by your browser. Get a more recent one to play my game!
            </canvas>

            <div id="gamestartscreen" class="gamelayer">
                <img src="images/icons/play.png" alt="Play Game" onclick="alert('ceve');"><br>
                <img src="images/icons/settings.png" alt="Settings">
            </div>
</div>

这是css:

#gamecontainer {
    width: 800px;
    height: 600px;
    background-color: beige;
    border: 1px solid black;
    position: relative;
    margin: 0 auto;
}

.gamelayer {
    width: 800px;
    height: 600px;
    position: absolute;
    display: none;
    z-index: 0;
}


/* Screen for the main menu (Like Play, Settings, etc.) */
#gamestartscreen {
    position: relative;
    margin: 0 auto;
}

#gamestartscreen img {
    margin: 10px;
    cursor: pointer;
}

有人可以告诉我,我做错了吗?

1 个答案:

答案 0 :(得分:19)

问题是画布层处于其原生静态定位,而gamestart div处于相对定位而没有正z-index值。基本上,你必须将canvas元素设置为position: absolute甚至position: relative,同时为startstreen div设置一个&gt; 1 z-index。这个JSFiddle应该清楚明白。 干杯!