将按钮相对定位在 canvas 上方会切断大部分 canvas
Relatively positioning button over canvas cuts off majority of canvas
我正在尝试使用 JS、HTML 和 CSS 制作游戏,其中我使用 HTML 打开 bag/inventory 菜单。但是,当我尝试将我的按钮定位到游戏屏幕的右下角 (canvas) 时,canvas 的大部分被切断,使其无法播放。
这是我看到的,下面是我的代码。
function setup() {
game = new Game;
player = new Player;
controller = new Controller;
canvas.width = 800;
canvas.height = 600;
}
@font-face { font-family: "04b_03"; src: url("assets/fonts/04B_03__.TTF"); }
:root {
--background: 15, 15, 15;
--outline: 255, 160, 30;
}
html, body {
/* Prevent scrollbars */
overflow: hidden;
/* Background */
background-color: rgb(var(--background));
/* Text */
font-family: "04b_03", sans-serif;
/* font-family: "Staatliches", cursive; */
font-size: 200%;
color: white;
}
.container {
position: relative;
width: auto;
height: auto;
}
canvas {
/* Center */
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
/* Border */
border: 10px solid white;
border-radius: 25px;
box-shadow: 0 0 50px rgba(255, 255, 255, 0.4);
/* Rendering */
image-rendering: pixelated;
/* Positioning */
z-index: 1;
}
.bag {
position: absolute;
right: 5%;
bottom: 5%;
z-index: 2;
}
<body>
FIRE
<div class = "container">
<canvas id = "canvas"> Your browser does not support the HTML canvas :( </canvas>
<button class = "bag"> Bag </button>
</div>
</body>
我该如何解决这个问题?每当我使用 relative
定位时,容器都会缩小,但我认为没有其他方法可以做到这一点。如果最终用户决定缩放屏幕,使用 absolute
定位会在按钮位置产生错误,因此我正在尝试寻找一种解决方案,使按钮始终位于 canvas.
没关系,我让它工作了。我在容器 CSS 上使用了固定定位。这是:
.container {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
我正在尝试使用 JS、HTML 和 CSS 制作游戏,其中我使用 HTML 打开 bag/inventory 菜单。但是,当我尝试将我的按钮定位到游戏屏幕的右下角 (canvas) 时,canvas 的大部分被切断,使其无法播放。
这是我看到的,下面是我的代码。
function setup() {
game = new Game;
player = new Player;
controller = new Controller;
canvas.width = 800;
canvas.height = 600;
}
@font-face { font-family: "04b_03"; src: url("assets/fonts/04B_03__.TTF"); }
:root {
--background: 15, 15, 15;
--outline: 255, 160, 30;
}
html, body {
/* Prevent scrollbars */
overflow: hidden;
/* Background */
background-color: rgb(var(--background));
/* Text */
font-family: "04b_03", sans-serif;
/* font-family: "Staatliches", cursive; */
font-size: 200%;
color: white;
}
.container {
position: relative;
width: auto;
height: auto;
}
canvas {
/* Center */
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
/* Border */
border: 10px solid white;
border-radius: 25px;
box-shadow: 0 0 50px rgba(255, 255, 255, 0.4);
/* Rendering */
image-rendering: pixelated;
/* Positioning */
z-index: 1;
}
.bag {
position: absolute;
right: 5%;
bottom: 5%;
z-index: 2;
}
<body>
FIRE
<div class = "container">
<canvas id = "canvas"> Your browser does not support the HTML canvas :( </canvas>
<button class = "bag"> Bag </button>
</div>
</body>
我该如何解决这个问题?每当我使用 relative
定位时,容器都会缩小,但我认为没有其他方法可以做到这一点。如果最终用户决定缩放屏幕,使用 absolute
定位会在按钮位置产生错误,因此我正在尝试寻找一种解决方案,使按钮始终位于 canvas.
没关系,我让它工作了。我在容器 CSS 上使用了固定定位。这是:
.container {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}