在绝对定位的div中居中内容

use*_*261 16 css css-position centering

我有一个绝对定位元素,里面有内容.它可以是一个<h1>或几个<p>标签.所以我不知道内容的高度.

如何将内容垂直居中放置在绝对位置内div

HTML:

<div id="absolute">
    <div class="centerd">
    <h1>helo</h1>
    <span>hi again</span>
    </div>
</div>   
Run Code Online (Sandbox Code Playgroud)

CSS:

#absolute {
    position:absolute;
    top:10px;
    left:10px;
    width:50%;
    height:50%;
    background:yellow;
}

.centerd {
    display:table-cell;
    vertical-align:middle;
}
Run Code Online (Sandbox Code Playgroud)

小提琴

Pet*_*ete 12

如果你添加display:table到你的#absolutediv你应该得到你想要的:

http://jsfiddle.net/3KTUM/2/

  • 这不是内容的中心..它只是使内容*从中心开始* (2认同)

小智 10

这也可以用 flexbox 来完成:

#absolute {
  align-items: center;
  display: flex;
  justify-content: center;
}
Run Code Online (Sandbox Code Playgroud)


小智 10

水平和垂直位置绝对中间.

.center {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50% , -50%);
  -webkit-transform: translate(-50%, -50%);
}
Run Code Online (Sandbox Code Playgroud)
<div class="obj">
  <div class="center">Test</div>
</div>
Run Code Online (Sandbox Code Playgroud)

  • 问题是“如何将绝对定位的 div 内的内容垂直居中?”绝对定位的 div 是“.obj”。您的答案在“.obj”上没有“position:absolute;”,应用它时不起作用,请参阅此[jsFIddle](https://jsfiddle.net/rwone/4yaef3hL)。 (2认同)

Jam*_*lly 6

更改您的#absolutediv也使用:

display:table;
vertical-align:middle;
text-align:center;
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/3KTUM/4/