我正在尝试将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>
答案 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;
答案 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;
并查看其是否有效。