我一直在寻找解决方案已有一段时间,但没有发现任何东西。也许这只是我的搜索字词。好吧,我试图根据浏览器窗口的大小使画布居中。画布是800x600。而且如果窗口低于800x600,它也应该调整大小(但目前还不是很重要)
我一直在寻找解决方案已有一段时间,但没有发现任何东西。也许这只是我的搜索字词。好吧,我试图根据浏览器窗口的大小使画布居中。画布是800x600。而且如果窗口低于800x600,它也应该调整大小(但目前还不是很重要)
Answers:
为画布提供以下css样式属性:
canvas {
padding-left: 0;
padding-right: 0;
margin-left: auto;
margin-right: auto;
display: block;
width: 800px;
}
编辑
由于此答案很受欢迎,因此让我添加更多细节。
以上属性将画布,div或相对于其父级的任何其他节点水平居中。无需更改顶部或底部边距和填充。您指定宽度,然后让浏览器使用自动边距填充剩余空间。
但是,如果您想减少键入,则可以使用所需的任何CSS速记属性,例如
canvas {
padding: 0;
margin: auto;
display: block;
width: 800px;
}
但是,将画布垂直居中需要另一种方法。您需要使用绝对定位,并指定宽度和高度。然后将left,right,top和bottom属性设置为0,并让浏览器使用自动边距填充剩余空间。
canvas {
padding: 0;
margin: auto;
display: block;
width: 800px;
height: 600px;
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
}
画布将基于已position
设置为relative
或的第一个父元素absolute
或如果未找到任何正文,则将自身居中。
另一种方法是使用display: flex
,这在IE11中可用
另外,请确保使用最新的文档类型,例如xhtml或html 5。
您可以为画布提供ff CSS属性:
#myCanvas
{
display: block;
margin: 0 auto;
}
只需将div放在HTML中:
#test {
width: 100px;
height:100px;
margin: 0px auto;
border: 1px solid red;
}
<div id="test">
<canvas width="100" height="100"></canvas>
</div>
只需将高度和宽度更改为任何值,您将获得居中的div
要使画布元素水平居中,必须将其指定为块级,并将其左右边距属性留给浏览器:
canvas{
margin-right: auto;
margin-left: auto;
display: block;
}
如果您想使其垂直居中,则canvas元素需要绝对定位:
canvas{
position: absolute;
top: 50%;
transform: translate(0, -50%);
}
如果要水平和垂直居中,请执行以下操作:
canvas{
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
有关更多信息,请访问:https : //www.w3.org/Style/Examples/007/center.en.html
以上答案仅在您的画布与容器的宽度相同时才有效。
无论以下情况,此方法均有效:
#container {
width: 100px;
height:100px;
border: 1px solid red;
margin: 0px auto;
text-align: center;
}
#canvas {
border: 1px solid blue;
width: 50px;
height: 100px;
}
<div id="container">
<canvas id="canvas" width="100" height="100"></canvas>
</div>
使用此代码:
<!DOCTYPE html>
<html>
<head>
<style>
.text-center{
text-align:center;
margin-left:auto;
margin-right:auto;
}
</style>
</head>
<body>
<div class="text-center">
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #000000;">
Your browser does not support the HTML5 canvas tag.
</canvas>
</div>
</body>
</html>
添加text-align: center;
到父标签的<canvas>
。而已。
例:
<div style="text-align: center">
<canvas width="300" height="300">
<!--your canvas code -->
</canvas>
</div>