垂直居中,绝对 - 没有高度

时间:2015-05-27 08:37:03

标签: html css

我正在尝试将div position: absolute;垂直居中于其父position: relative

我正在使用的CSS:

#parent {
    position: relative
    height: 300px;
}

#child {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    width: 50%;
    height: 30%;
}

问题是我必须将height设置为30%才能使其正确居中。但是,当内容(主要是文本)缩小在较小的屏幕上时,它会在多行上显示30% height。{/ p>

4 个答案:

答案 0 :(得分:3)

检查以下内容:



#parent {position: relative; height:500px; border: 1px solid;}

#child {
 position: absolute;
 top: 50%;
 transform: translateY(-50%);
 left:0;
 right:0;
 margin: auto;
 width:50%;
    border: 1px solid;
}

<div id="parent">
    <div id="child">
        child <br/>child <br/>child <br/>child <br/>child <br/>child <br/>   
    </div>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

如果您正在设计自适应网页,我建议您使用 media queries

@media screen and (max-width:767px){
   #child {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    width: 50%;
    height: 30%;
}
}
@media screen and (min-width:767px){
   #child {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    width: 50%;
    height: 10%; //desired height
}
}

答案 2 :(得分:0)

这样做:假设身高是300px

#parent { position:relative;}

#child{ position:absolute;top:50%;left:50%margin-left:-150px;margin-top:-150px;}

答案 3 :(得分:-1)

尝试使用min-height:30%;定义white-space:nowrap;并查看其是否有效。