CSS:将绝对定位文本居中于相对父级

时间:2013-08-09 13:21:56

标签: html css css-position centering

如何将绝对定位文本居中于流体相对父级?我试图在父元素上使用text-align:center,但它总是将孩子的左角放在中心,而不是元素本身。

http://jsfiddle.net/sucTG/2/

3 个答案:

答案 0 :(得分:26)

问题是position:absolute;修改了元素的宽度以适应其内容,而text-align: center;将文本置于元素块宽度的中心。因此,如果添加position: absolute;,请不要忘记增加元素的宽度,否则text-align: center;属性将无用。

解决此问题的最佳方法是在.text部分添加width: 100%;left: 0px;

http://jsfiddle.net/27van/

答案 1 :(得分:0)

更新:我之前提出的是错误/错误

http://jsfiddle.net/brJky/1/

这应该更接近你想要的吗?

您的文字是相对的,而容器内的其他元素是绝对的!

.text {
    color:#fff;
    padding:50px 0;
    display:block;
    position:relative;
}

.absolute {
    background:#f0f;
    height:25px; width:25px;
    position:absolute;
    top:36px; left:50%;
}

答案 2 :(得分:0)

现在,您可以通过flex轻松实现所需的功能。参见例如:

HTML:

<div class="container">
  <div class="text">Your text</div>
</div>

CSS:

.container {
  position: relative; 
  width: 400px; /** optional **/
  height: 400px; /** optional **/
  background-color: red; /** optional **/
}

.text {
  position: absolute;
  top: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center; /** Y-axis align **/
  justify-content: center; /** X-axis align **/
}