Flexbox垂直和水平居中

时间:2017-03-21 20:39:37

标签: html css css3 flexbox

我想在我的某个网页上设置水平和垂直居中的内容。我这样做了。

<!DOCTYPE html>
<html>
  <head>
    <title>Eko</title>
    <%= csrf_meta_tags %>    
    <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload' %>    
  </head>    
  <body>
    <div class="login-container">    
      <h1>Hello</h1>    
    </div>    
  <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
  </body>    
</html>

这是我的CSS。

.login-container {    
    display: flex;
    justify-content: center;
    align-items: center;    
}

但是,垂直中心不会发生(只是水平)。 它适用于我应用此CSS。

body {    
    display: flex;
    justify-content: center;
    align-items: center;    
}

为什么它只适用于我们应用于身体?

2 个答案:

答案 0 :(得分:5)

您的容器没有高度设置,因此它只使用其内容所需的垂直空间,因此不会有垂直居中。如果您将height: 100%应用于它(以及body以具有参考高度),它应该可以正常工作。

答案 1 :(得分:0)

此外,您必须提供两者您的html&amp; body标记高度,例如:

html, body{
    height: 100%;
}

因此,您的容器也是垂直居中的。