在具有多个 div 的 parent div 中中心特定 child div

center specific child div in a parent div that has multiple divs

我有一个 parent div 有两个 child div。 parent div 占据视口高度。第一个 child(header)必须在顶部,而第二个 child(文本包装器)必须垂直居中。如何确保无论屏幕大小如何,文本包装器都将垂直居中?

一个可能的解决方案是将 header 设置为绝对值,并设置 top: 0px。然后通过设置 align-items: center 可以很容易地使文本包装器居中。但是自从我最近了解视口单位以来,我想知道是否可以使用 vh/vw 等。我只是不明白如何使用 vh 将文本包装器居中,如果文本包装器的高度是流动的。

link 到 fiddle: http://jsfiddle.net/s1fhae65/3/

我的结构 parent div:

<section id="zero">
  <div id="header">
    Header
  </div>
  <div id="text-wrapper">
    <h2>
      Title
    </h2>
    <h4>
      Subtitle
    </h4>
  </div>
</section>

您可以将 position:absolute 和 margin-top: 50vh 给 text-wrapper div。这样它将保持 在其父 div 的中心。您还可以使用 width:100vw 为文本包装器提供全宽 div.