微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

html-使用flexbox居中动态对象

游戏开始时,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>

https://jsfiddle.net/nfzj183t/14/

我问,因为我在网络方面没有太多经验,所以我想使用正确的方法解决这个简单的问题.
预先感谢您的提示:)

最佳答案
一种方法是将网格用于主布局,并在网格的每个元素内使用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;
}

如果需要,我可以向您展示更复杂的示例.

参考:https://gridbyexample.com/examples/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐