html - 使用视口(viewport)高度在父级内部垂直居中 div

标签 html css viewport

所以我有一个高度为 100vh - 55px 的 div,并且我有一个 div,无论如何我都希望在父级内部垂直居中。我将如何继续这样做?这就是我现在拥有的:

/* home.css | By Seb R | Ekchö */

.lander {
  height: calc(100vh - 55px);
  background: blue;
  overflow: hidden;
}
.lander .content {
  height: 300px;
  margin-top 30vh;
  background: red;
}
<div class="lander">
  <div class="content"></div>
</div>

我做错了什么?

最佳答案

简单的绝对定位。

JSfiddle Demo

.lander {

  height: calc(100vh - 55px);
  background: blue;
  overflow: hidden;
  position: relative;

}

.lander .content {

  height: 300px;
  background: red;
  position: absolute;
  width: 100%;
  left: 0;
  top: 50%;
  margin-top: -150px;  /* half height */

}
<div class="lander">
  <div class="content"></div>
</div>

Flexbox

JSfiddle Demo

.lander {
    height: calc(100vh - 55px);
    background: blue;
    display:flex;
    flex-direction:column;
    justify-content:center;
}
.lander .content {
    height: 300px;
    background: red;
}
<div class="lander">
    <div class="content"></div>
</div>

显然在某些时候 300px 可能比您分配的视口(viewport)更大(如 SO 片段中所示),因此您可能需要在此之前进行调整。

关于html - 使用视口(viewport)高度在父级内部垂直居中 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31116762/

相关文章:

jquery选择器无法找到可见的最后一个子项

c# - 在运行时在服务器端在 C# 中查找 div

javascript - 当表单元素离开视口(viewport)后,将键盘焦点从表单元素上移除

wpf - 精确的不透明蒙版

html - 我需要用 css 给一个 div 与其 parent.parent div 相同的宽度

html - 如何将以下html转换成jade

javascript - 网格元素单击事件在移动设备等小屏幕上不起作用

css - 如何使 GWT RichTextArea 在 Internet Explorer 下透明?

css - Bootstrap3 移动设备按钮大小与屏幕按钮大小不同

javascript - 方向更改后视口(viewport)比例不起作用