CSS垂直居中,你會多少種寫法?

來源 |?https://wintc.top/article/4
一、水平居中
塊級元素 設(shè)置width,并設(shè)置margin auto 內(nèi)聯(lián)元素 父元素設(shè)置text-align center
1、塊級元素水平居中
.container {height: 300px;width: 300px;border: 1px solid red;}.content {width: 10rem;border: 1px solid green;margin: 0 auto;}
效果:

2、內(nèi)聯(lián)元素水平居中
.container {height: 300px;width: 300px;border: 1px solid red;text-align: center;}.content {display: inline-block;border: 1px solid green;}

二、水平垂直居中
1、flex布局
display: flexalign-items: center
如果同時(shí)要水平居中,則同時(shí)設(shè)置:justify-content center ,需要注意的是IE10+才支持,webkit前綴瀏覽器設(shè)置flex屬性需要加webkit。
{width: 300px;height: 300px;border: 1px solid red;display: -webkit-flex;display: flex;關(guān)鍵屬性: center; // 垂直居中: center // 水平居中}{border: 1px solid green;}
效果:

2、?margin+ position:absolute布局
.container {width: 300px;height: 300px;position: relative;border: 1px solid red;}.content {position: absolute;left: 0;right: 0;top: 0;bottom: 0;width: 200px;height: 100px;margin: auto;border: 1px solid green;}

3、?transform + absolute
.container {width: 300px;height: 300px;position: relative;border: 1px solid red;}.content {position: absolute;left: 50%;top: 50%;transform: translate(-50%, -50%);border: 1px solid green;}
效果:

這個(gè)方法有個(gè)小缺陷,就是translate函數(shù)的參數(shù),最后的計(jì)算值不能為小數(shù),否則有的瀏覽器渲染出來效果會模糊,所以使用本方法的話最好設(shè)置一下寬高為偶數(shù)。
4、absolute+margin負(fù)值
代碼:
.container {width: 300px;height: 300px;position: relative;border: 1px solid red;}.content {position: absolute;left: 50%;top: 50%;width: 200px;height: 100px;margin-top: -50px;margin-left: -100px;border: 1px solid green;}

5、absolute + calc
.container {width: 300px;height: 300px;border: 1px solid red;text-align: center;position: relative;}.content {position: absolute;border: 1px solid green;width: 200px;height: 100px;left: calc(50% - 100px);top: calc(50% - 50px);}

6、?line-height + vertical-align
代碼:
.container {width: 300px;height: 300px;border: 1px solid red;line-height: 300px;text-align: center;}.content {display: inline-block;line-height: 1.5;border: 1px solid green;vertical-align: middle;}



評論
圖片
表情
