我如何用CSS垂直集中一个 <div> 在另一个 <div> 中?

<div id="outer">
  <div id="inner">Foo foo</div>
</div>

当前回答

这肯定会把你的内部都集中在水平上和垂直上,这也适用于所有浏览器,我只是添加了额外的风格,只是为了显示它是如何集中的。

#outer {背景:黑色;位置:相对;宽:150px;高度:150px; } 内部 {背景:白色;位置:绝对;左:50%;顶部:50%;转换:翻译(50%,-50%); -webkit-转换:翻译(50%,-50%); -moz-转换:翻译(50%,-50%); -o-转换:翻译(50%,-50%); } <div id="outer"> <div id="inner">Foo foo</div> </div>

但是,當然,如果你只想它垂直調整,這可能會幫助你。

其他回答

使用此代码:

<div id="outer">
    <div id="inner">Foo foo</div>
</div>

#inner {
  width: 50%;
  margin: 0 auto;
  text-align: center;
}

它也可以用绝对定位来垂直和垂直集中,如下:

#outer{
    position: relative;
}

#inner{
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%)
}

它不能集中,如果你不给它一个宽度,否则,它将采取,默认情况下,整个水平空间。

添加文本:中心;到 parent div

#outer {
    text-align: center;
}

HTTPS://jsfiddle.net/7qwxx9rs/

#outer > div {
    margin: auto;
    width: 100px;
}

HTTPS://jsfiddle.net/f8su1fLz/

如果你不想在内部DIV上设置固定宽度,你可以做这样的事情:

#outer { 宽度: 100%; 文本顺序:中心; } #inner { 显示: inline-block; } <div id="outer"> <div id="inner"> Foo foo</div> </div>

这使得内部的DIV变成一个可以与文本平行集中的内线元素。