3 回答
TA贡献1796条经验 获得超10个赞
你不能使用:
vertical-align:middle因为它是不是适用于块级元素
margin-top:auto并且margin-bottom:auto因为他们使用的值将计算为零
margin-top:-50%因为基于百分比的边距值是相对于包含块的宽度计算的
实际上,文档流和元素高度计算算法的性质使得无法使用边距将元素垂直居中于其父元素内。每当垂直边距的值改变时,它将触发父元素高度重新计算(重新流动),这反过来会触发原始元素的重新中心...使其成为无限循环。
您可以使用:
这样的一些解决方法适用于您的场景; 这三个元素必须嵌套如下:
.container {
display: table;
height: 100%;
position: absolute;
overflow: hidden;
width: 100%;
}
.helper {
#position: absolute;
#top: 50%;
display: table-cell;
vertical-align: middle;
}
.content {
#position: relative;
#top: -50%;
margin: 0 auto;
width: 200px;
border: 1px solid orange;
}
<div class="container">
<div class="helper">
<div class="content">
<p>stuff</p>
</div>
</div>
</div
- 3 回答
- 0 关注
- 427 浏览
相关问题推荐
添加回答
举报