【问题标题】:vertical centering div in relative div with min-height具有最小高度的相对 div 中的垂直居中 div
【发布时间】:2016-11-11 04:54:13
【问题描述】:

我在 Bootstrap 列(相对定位)中有一个绝对定位的 div,绝对 div 或列都没有定义的高度。但是列 div 的最小高度为 400px。

html

<section class="row row-eq-height"> 
    <div class="col-sm-6">
        <div class="section-content">
           ... content ...
        </div>
     </div>

     <div class="col-sm-6 section-img">
        ... full cover image ...
    </div>
 </div>

css

   @media screen and (max-width: 768px) {

  .section-content { position: absolute; }

  .section-img { min-height: 400px; }

  .row-eq-height {
    position: relative;
    min-height: 400px;
   }

当屏幕为 768 像素时,.section-content div 位于 .section-img div 的顶部。列的高度由 .section-img 上的最小高度生成。 我正在尝试将 .section-content 垂直居中在 column/.section-img 内。 //////

【问题讨论】:

  • 请提供工作样本
  • 问题是所有内容都是动态的,并且是通过wordpress引入的。本质上,我需要在没有定义高度的相对 div 中将绝对 div 居中
  • 你试过使用top:0; bottom: 0; margin: auto;吗?
  • 我已经尝试过了,但是没有定义高度,这不起作用
  • 如何在其中创建另一个容器并将其显示为table 并为内容显示table-cell

标签: html css twitter-bootstrap


【解决方案1】:

您不必使用表格。如果我理解正确,正如 Rob 所说,创建一个内部包装器并将父容器的显示属性设置为 table 并将内部包装器设置为 table-cellvertical-align: middle;

<div class="col-sm-6 section-img">
  <div class="middle">... full cover image ...</div>
</div>

这是 CSS

.section-img {
  min-height: 400px;
  display: table;
}
.middle {
  display: table-cell;
  vertical-align: middle;
}

【讨论】:

  • 问题是section-content div不在section-img div中。我有 Bootstrap 列在 768px 屏幕中全宽,所以我将内容 div 设为绝对值,因此它位于图像顶部(在大屏幕上它们彼此相邻)。我遇到的一个问题是,如果图像 div 上没有最小高度,它就不会显示。我使用 flex 和 row-eq-height 在大屏幕上居中并使其大小相同(如图所示)
猜你喜欢
  • 2013-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-07
  • 2016-04-30
  • 2018-04-20
相关资源
最近更新 更多