保持两个画布并排改变纵横比
Keep two canvases side by side with changing aspect ratio
我正试图在 Chrome 上并排显示两个 canvases(左边是 gameScreen,右边是 scoreScreen)。无论屏幕 size/aspect 比例如何,我都希望这些 canvases 保持并排。下面是我的 HTML 和 CSS:
HTML:
<body>
<canvas id="gameScreen" width="600" height="600"></canvas>
<canvas id="scoreScreen" width="300" height="600"> </canvas>
</body>
CSS:
#gameScreen {
border: 1px solid black;
}
/* #scoreScreen {
border: 1px solid black;
} */
html,
body {
height: 100%;
}
html {
display: table;
margin: auto;
}
body {
display: table-cell;
vertical-align: middle;
}
这适用于 1024x600 大小的屏幕,但随着屏幕尺寸越来越大,左侧 canvas(游戏屏幕)开始与右侧 canvas 重叠。我试图用 div 标签包装两个 canvases 并为 div 标签分配一个相对位置,但是,我无法让它工作。
使用标签父灵活性规则<canvas>
。添加 display: flex
和规则 gap
以省略 <body>
标签。
<canvas>
标签将始终并排,无论屏幕尺寸如何。
html,
body {
height: 100%;
}
html {
display: table;
margin: auto;
}
body {
/*display: table-cell;
vertical-align: middle;*/
display: flex;
gap: 8px;
}
#gameScreen {
border: 1px solid black;
}
#scoreScreen {
border: 1px solid black;
}
<body>
<canvas id="gameScreen" width="600" height="600"></canvas>
<canvas id="scoreScreen" width="300" height="600"> </canvas>
</body>
我正试图在 Chrome 上并排显示两个 canvases(左边是 gameScreen,右边是 scoreScreen)。无论屏幕 size/aspect 比例如何,我都希望这些 canvases 保持并排。下面是我的 HTML 和 CSS:
HTML:
<body>
<canvas id="gameScreen" width="600" height="600"></canvas>
<canvas id="scoreScreen" width="300" height="600"> </canvas>
</body>
CSS:
#gameScreen {
border: 1px solid black;
}
/* #scoreScreen {
border: 1px solid black;
} */
html,
body {
height: 100%;
}
html {
display: table;
margin: auto;
}
body {
display: table-cell;
vertical-align: middle;
}
这适用于 1024x600 大小的屏幕,但随着屏幕尺寸越来越大,左侧 canvas(游戏屏幕)开始与右侧 canvas 重叠。我试图用 div 标签包装两个 canvases 并为 div 标签分配一个相对位置,但是,我无法让它工作。
使用标签父灵活性规则<canvas>
。添加 display: flex
和规则 gap
以省略 <body>
标签。
<canvas>
标签将始终并排,无论屏幕尺寸如何。
html,
body {
height: 100%;
}
html {
display: table;
margin: auto;
}
body {
/*display: table-cell;
vertical-align: middle;*/
display: flex;
gap: 8px;
}
#gameScreen {
border: 1px solid black;
}
#scoreScreen {
border: 1px solid black;
}
<body>
<canvas id="gameScreen" width="600" height="600"></canvas>
<canvas id="scoreScreen" width="300" height="600"> </canvas>
</body>