当高度为百分比时,将div放在另一个div的中间

时间:2015-03-31 07:47:14

标签: html css css3 vertical-alignment

我有这个侧窗格。它的高度是80%。在这个侧窗格中,我有一个文本。我希望这始终处于中间位置。

主要部分:

.simulation {
  height: 80%;
  width: 500px;
  border: 1px solid #ccc;
  box-shadow: 8px 8px 7px #A5A5A5;
  background: #FFF;
  position: absolute;
  top: 10px;
  z-index: 100;
  left: -450px;
  transition: 500ms ease all;
}

Sub div:

.simulation .simulation-content .simulation-bar .heading {
  position: relative;
  margin-top: 340px; /* How do I get this in the middle?? */
  -webkit-transform: rotate(-90deg);
}

当我用%表示时,我无法获得保证金权利。

Plunkr:http://plnkr.co/edit/Z8xZNYLNvShQDVPZMZgk?p=preview

2 个答案:

答案 0 :(得分:2)

您可以通过定位子absolute以及top: 50%transform: translateY(-50%)的组合,将子元素垂直对齐在父级的中间。

在这个特定的例子中 - Example

.simulation .simulation-content .simulation-bar .heading {
  position: absolute;
  top: 50%;
  left: 0;
  -webkit-transform: translate(-30%, -50%) rotate(-90deg);
  -moz-transform: translate(-30%, -50%) rotate(-90deg);
  -ms-transform: translate(-30%, -50%) rotate(-90deg);
  -o-transform: translate(-30%, -50%) rotate(-90deg);
  transform: translate(-30%, -50%) rotate(-90deg);
}

可以在这里找到解释:

答案 1 :(得分:0)

您也可以使用flexbox来实现它。只需添加:

display: flex;
  flex-flow: column nowrap;
  justify-content: center;

到您的"主要内容"