CSS实现水平垂直居中的几种方式

拥有回忆 提交于 2019-12-02 10:58:39

准备工作,假设有如下html

<div class="wrapper">
    <div class="box">
        
    </div>
</div>

需要设置宽高

1.position + 负margin

.wrapper{
    position:relative;
}

.box{
    width:100px;
    height:100px;
    position:absolute;
    left:50%;
    top:50%;
    margin-left: -50px;
    margin-top: -50px;
}

2. position + margin:auto

.wrapper{
    position:relative;
}

.box{
    width:100px;
    height:100px;
    position:absolute;
    left:0
    top:0;
    right:0;
    bottom:0;
    margin:auto;
}

3.position + calc()

.wrapper{
    position:relative;
}

.box{
    width:100px;
    height:100px;
    position:absolute;
    left:calc(50% - 50px) ;
    top:calc(50% - 50px) ;
}

不需要设置宽高

1.position + transform

.wrapper{
    position:relative;
}

.box{
    width:100px;
    height:100px;
    position:absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%); 
}

2.flex布局

.wrapper{
    display:flex;
    align-items:center;
    justify-content:center;
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!