Javascript 画布大小不一致

Javascript 画布大小不一致,javascript,html,css,Javascript,Html,Css,我有一个高度为640的HTML5画布。我希望下面样式的文本在中间 top = 320px; position = 'absolute' 然而,这是在画布下面,并且 top = 140px; 看起来它是居中的 截图: | 我做错了什么?我应该试着使用JS而不是CSS吗 canvas.getContext("2d"); 如果您知道的高度,请执行以下操作: // Add this to your CSS for #game-over // example span id="game-over

我有一个高度为640的HTML5画布。我希望下面样式的文本在中间

top = 320px; 
position = 'absolute'
然而,这是在画布下面,并且

top = 140px;
看起来它是居中的

截图: |

我做错了什么?我应该试着使用JS而不是CSS吗

canvas.getContext("2d"); 

如果您知道
的高度,请执行以下操作:

// Add this to your CSS for #game-over
// example span id="game-over" height of 200px;
#game-over
{
    position:absolute;
    top:50%;
    margin-top:-100px;
}
如果您不知道
高度,我会这样做:

// Add this to your CSS for #game-over
#game-over
{
    position:absolute;
    top:50%;
}
要在
javascript
中检查元素的高度并设置边距,请执行以下操作:

var gameOver = document.getElementById("game-over");
// get height
var heightOfText = gameOver.style.height;
// get half of height
heightOfText = parseInt(heightOfText)/2;
// set negative margin to center it
gameOver.style.marginTop = "-" + heightOfText.toString() + "px"

如果您知道
的高度,请执行以下操作:

// Add this to your CSS for #game-over
// example span id="game-over" height of 200px;
#game-over
{
    position:absolute;
    top:50%;
    margin-top:-100px;
}
如果您不知道
高度,我会这样做:

// Add this to your CSS for #game-over
#game-over
{
    position:absolute;
    top:50%;
}
要在
javascript
中检查元素的高度并设置边距,请执行以下操作:

var gameOver = document.getElementById("game-over");
// get height
var heightOfText = gameOver.style.height;
// get half of height
heightOfText = parseInt(heightOfText)/2;
// set negative margin to center it
gameOver.style.marginTop = "-" + heightOfText.toString() + "px"

您应该将文本放置在画布中,并使用画布
textAlign
fillText
设置内容和位置
var canvas=document.getElementById(“gl canvas”);
var ctx=canvas.getContext(“2d”);
ctx.textAlign=“中心”;
ctx.fillText(canvas.textContent,430320)

游戏结束!你。。。

您应该将文本放在画布内,并使用画布
textAlign
fillText
设置内容和位置
var canvas=document.getElementById(“gl canvas”);
var ctx=canvas.getContext(“2d”);
ctx.textAlign=“中心”;
ctx.fillText(canvas.textContent,430320)

游戏结束!你。。。

字体大小的帐户以及ID只能使用一次。您有两个元素,分别为
#游戏结束
。其次,容器是否有
位置:relative
?@sol您是对的,出于某种原因,我在div中跨越了另一个#游戏结束#游戏结束。谢谢完整的代码在哪里?@Emre很高兴它有帮助,因为字体大小以及ID只能使用一次。您有两个元素,分别为
#游戏结束
。其次,容器是否有
位置:relative
?@sol您是对的,出于某种原因,我在div中跨越了另一个#游戏结束#游戏结束。谢谢完整的代码在哪里?@Emre很高兴它帮助我们将此标记为答案,因为它很简单,但我的具体问题在注释中被sol解释。将此标记为答案,因为它很简单,但我的具体问题在注释中被sol解释。