游戏开始时,flexBox居中效果很好(在静态对象上).
在游戏进行过程中,两个(标题和剩余div)都会更改其值/大小,从而导致通过flexBox不断调整中心位置(标题中的所有div都在移动).
我希望游戏内每个div标题保持“固定”状态.
仅使用flexBox是否有可能?或者我应该使用其他方法吗?
我应该单独放置每个元素吗?
您可以观察远程服务器上的标头行为:
https://stacho163.000webhostapp.com/firstLevel.html
body {
margin: 0;
width: 100%;
height: 100%;
}
header {
display: flex;
justify-content: space-around;
align-items: center;
background-color: white;
}
#game-window {
position: absolute;
width: 90vw;
height: 90vw * 16/9;
top: 50%;
left: 50%;
transform: translate(-50%,-46%);
background-color: gray;
}
<body>
<header>
<div id="lifes">
Life1 Life2 Life3
</div>
<div id="title">
Title (changes when you win)
</div>
<div id="remain">
Remaining: (from 100 to 0)
</div>
</header>
<canvas id="game-window"></canvas>
</body>
最佳答案
一种方法是将网格用于主布局,并在网格的每个元素内使用flexBox组件.
标头将类似于:
header {
display: grid;
grid-template-columns: repeat(3,1fr);
grid-template-rows: 10vh;
}
您将需要使每一列都成为“ display:flex;”.容器.这将是“生命”的一个例子:
#lifes{
display: flex;
align-items: center;
justify-content: center;
}
如果需要,我可以向您展示更复杂的示例.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。