1. 程式人生 > >html+css, 讓div水平垂直居中的幾種方式

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;
}