在另一个div

时间:2017-11-18 14:47:27

标签: html css css3 flexbox centering

我想在两个div中垂直对齐文本。我在这里尝试了许多解决方案但没有产生所需的结果。

我创作了一个sjFiddle:

#outer {
  position: relative;
}

#inner1 {
  position: absolute;
  align-items: center;
  top: 10%;
  bottom: 10%;
  width: 100%;
  height: 40%;
}

#inner2 {
  position: absolute;
  align-items: center;
  top: 50%;
  bottom: 10%;
  width: 100%;
  height: 40%;
}

html,
body {
  height: 100%;
}

#outer {
  background-color: purple;
  width: 50%;
  height: 50%;
}

#inner1 {
  background-color: yellow;
}

#inner2 {
  background-color: red;
}
<div id="outer">
  <div id="inner1">
    Test text 1
  </div>
  <div id="inner2">
    Test text 1
  </div>
</div>

根据我小提琴中的代码,任何人都可以看到我能做到这一点。 非常感谢你的时间。

1 个答案:

答案 0 :(得分:2)

这与你想要达到的目标相似吗?

&#13;
&#13;
#outer {
    height:100%;
    padding:10% 0;
    box-sizing:border-box;
}

#inner1 {
  height:50%;
  width:100%;
  display:flex;
  justify-content:center;
  align-items:center;
}


#inner2 {
  height:50%;
  width:100%;
  display:flex;
  justify-content:center;
  align-items:center;
}

html, body { height: 100%; }
#outer {
    background-color: purple;
}
#inner1 {
    background-color: yellow;
}

#inner2 {
    background-color: red;
}
&#13;
<div id="outer">
    <div id="inner1">
         Test text 1
     </div>
     <div id="inner2">
         Test text 1
    </div>
</div>
&#13;
&#13;
&#13;

我已经从内部div中移除了定位并使它们成为flexbox,从而允许我们使用justify-content和align-items来实现水平和垂直居中。