为了账号安全,请及时绑定邮箱和手机立即绑定

使用margin:auto来垂直对齐div

使用margin:auto来垂直对齐div

吃鸡游戏 2019-08-30 15:29:36
所以我知道如果我们使用,我们可以将div水平居中margin:0 auto;。应该margin:auto auto;如何工作我认为它应该工作?垂直居中也是如此?为什么不起作用vertical-align:middle;?.black {    position:absolute;    top:0;    bottom:0;    left:0;    right:0;    background:rgba(0,0,0,.5);}.message {    background:yellow;    width:200px;    margin:auto auto;    padding:10px;}<div class="black">    <div class="message">        This is a popup message.    </div></div>
查看完整描述

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


查看完整回答
反对 回复 2019-08-30
  • 3 回答
  • 0 关注
  • 427 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信