如何在不给出屏幕高度的情况下垂直对齐 div?

How can I vertically align a div without giving the height of the screen?

我正在尝试构建一个水平和垂直对齐的滑块。 我在此代码中使用 display: flex;

body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 100%;
}
<div id="slider">

  the content

</div>

我希望 div 位于屏幕中央,但如果不给 body 一定的高度,这似乎对我不起作用。我必须使用 height: 100vh; 还是有更好的解决方案?

您还需要在 html 上设置 height: 100%

html {
  height: 100%;
}
body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 100%;
}
<div id="slider">
  the content
</div>

不要 body 弯曲。改用容器:

.container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 100%;
  /*or use height:100vh;*/
}



<div class="container">
    <div id="slider">

      the content

    </div>
  </div>