html+css, 让div水平垂直居中的几种方式

在web前端开发中经常需要使用到让div进行水平和垂直居中的技术,现在我们就来谈谈如何实现div水平垂直居中(如下图所示)

 

div元素在屏幕上水平垂直居中的三种方法


HTML中有个class为box的div元素,通过修改css样式让box元素在页面水平垂直居中显示

<body>
    <div class="box">

    </div> 
</body>

方法一(margin: auto实现绝对定位元素的居中)

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

方法二(margin负间距)  注意:margin-top和margin-left的取值是根据元素宽高值除以2所得到的

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

方法三 (tansform平移法)  注意:IE8以下浏览器不支持

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

div元素在父元素中水平垂直居中的两种方法


<body>
    <div class="boxWrap">
        <div class="box">

        </div> 
    </div> 
</body>

方法一(利用css3新增属性table-cell,vertical-aligen: middel)

.boxWrap {
     width: 200px;
     height: 200px;
     display: table-cell;
     vertical-align: middle;
}
.box {
    width: 50px;
    height: 50px;
    background: burlywood;
    margin: auto;
}

方法二(在父元素上使用flexbox弹性布局)

.boxWrap {
     width: 200px;
     height: 200px;
     display: flex;
     justify-content: center;
     align-items: center;
}
.box {
    width: 50px;
    height: 50px;
    background: burlywood;
}

猜你喜欢

转载自blog.csdn.net/qq_38128179/article/details/84250609