【问题标题】:Viewport Centered <div> Alignment视口居中 <div> 对齐
【发布时间】:2017-05-07 18:39:25
【问题描述】:

我正在尝试使用 vh 单位在视口中垂直居中内容,并希望在右下方对齐第二个 &lt;div&gt;,但仍然在视口中垂直居中。

换句话说,我想让.reference 类在.content 类的右下方对齐,并且两个元素在视口中垂直居中。

body {
  background: rgb(0, 14, 32);
  color: white;
  font-size: 2em;
}

.card { /* Should be vertically centered in viewport*/
  height: calc(100vh);
  display: flex;
  align-items: center;
  justify-content: center;
}

.content { /* Should be horizontally left aligned or centered in viewport*/
  float: left;
  border: solid white;
  margin: 2 em;
}

.reference { /* Should be right aligned and below .content <div> in viewport*/
  float: right;
  clear: both;
  text-align: right;
  font-size: 0.5em;
  margin: 2 em;
  border: solid blue;
}
<div class="card">
  <div class="content">
    Main Content
  </div>
  <div class="reference">
    Reference Content
  </div>
</div>

已更新最终解决方案

body {
  background: rgb(0, 14, 32);
  color: white;
  font-size: 2em;
  display: table;
  width: 100%;
}

.card { /* Should be vertically centered in viewport*/
  height: calc(100vh);
  display: table-cell;
  vertical-align: middle;
  margin: auto;
}

.content { /* Should be left or center aligned in viewport*/
  text-align: left;
  border: solid white;
  margin: 0 1rem;
}

.reference { /* Should be right aligned and below .content <div> in viewport*/
  text-align: right;
  font-size: 0.5em;
  border: solid blue;
  margin: 0 1rem;
}
<div class="card">
  <div class="content">
    Main Content
  </div>
  <div class="reference">
    Reference Content
  </div>
</div>

【问题讨论】:

    标签: html css vertical-alignment viewport viewport-units


    【解决方案1】:

    要达到预期的效果,请在下面使用
    HTML:

     <div class="card">
          <div class="content">
            Main Content
          </div>
          <div class="reference">
            Reference Content
          </div>
        </div>
    

    CSS:

    body {
      background: rgb(0, 14, 32);
      color: white;
      font-size: 2em;
       display: table;
       width:100%;
      text-align:center;
    
    }
    
    .card {
      height: calc(100vh);
     display: table-cell;
     vertical-align: middle;
      margin: auto;
    
    
    }
    
    .content {
      text-align: left;   
      border: solid white;
    
    }
    
    .reference {
      text-align: right;
      font-size: 0.5em;
      border: solid blue;
    
    }
    

    Codepen-https://codepen.io/nagasai/pen/qmVKjB

    【讨论】:

    • 这太棒了!我确实注意到正确的内容被视口的边缘切断了。也许是填充/边距问题?
    • 是的@ZephyrMays,我只是试着让它垂直居中,如果你应用填充或边距:2em 应该可以工作
    • 只是在玩弄它 - 会完美运行。非常感谢您的回答!
    • 很高兴我的回答对你有所帮助:) ..如果你在任何时候卡住了,请告诉我
    • 查看您对 OP 的调整的更新。我使用了rem 单元,因为使用具有不同font-size 元素的em 单元可能会不一致。
    猜你喜欢
    • 1970-01-01
    • 2011-03-13
    • 2016-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    • 2020-11-29
    相关资源
    最近更新 更多