在身体中垂直居中一个div?

新手上路,请多包涵

我试图将其垂直居中 body (不是水平)。另外,我不想指定高度或类似的东西。我尝试添加一个 100% 高度的包装器和其他东西,但没有成功。你能帮我解决这个问题吗?

jsFiddle 在这里

 <form name="signup" class="signup" action="signup.php" style="border: 1px solid #000; ">
     <input type="text" placeholder="Email"/><br>
     <input type="text" placeholder="Username"/><br>
     <input type="password" placeholder="Password"/><br>
     <button type="submit">Next</button>
 </form>​

原文由 Hunter Mitchell 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 246
2 个回答

查看 您的 jsFiddle 的这个编辑版本

基本上,只需将您的内容包装在 <div class = "main"><div class = "wrapper"></div></div> 中,并添加以下 CSS:

 html, body {
    height: 100%;
}
.main {
    height: 100%;
    width: 100%;
    display: table;
}
.wrapper {
    display: table-cell;
    height: 100%;
    vertical-align: middle;
}

原文由 Chris 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果你有 flexbox 可用,你可以不使用 display: table;

代码示例:

 html,
body {
  height: 100%;
  width: 100%;
}

.container {
  align-items: center;
  display: flex;
  justify-content: center;
  height: 100%;
  width: 100%;
}
 <html>
  <body>
    <div class="container">
      <div class="content">
        This div will be centered
      </div>
    </div>
  </body>
</html>

哒哒!垂直和水平居中的内容 div。 JSFiddle: https ://jsfiddle.net/z0g0htm5/。

主要取自 https://philipwalton.github.io/solved-by-flexbox/demos/vertical-centering/https://css-tricks.com/snippets/css/a-guide-to-flexbox/

原文由 Rob Waring 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题