更新時間:2019-01-22 來源:黑馬程序員 瀏覽量:
我們在平時訪問一些頁面的時候,會發(fā)現(xiàn)有些內(nèi)容總是顯示在整個頁面的中間,比如百度登錄頁面,小米協(xié)議聲明:


要解決子元素在父元素中水平垂直都居中,可以分3步
1. 定義HTML結(jié)構(gòu),一個父盒子包裹一個子盒子
2. 通過CSS的絕對定位屬性實現(xiàn)水平垂直都居中
3. 通過CSS的flex屬性實現(xiàn)水平垂直都居中
一. 第一步 —— 定義HTML結(jié)構(gòu),一個父盒子包裹一個子盒子
目標 : 書寫HTML結(jié)構(gòu),一個父盒子包裹一個子盒子,并給父盒子子盒子一定的寬度高度,以及不同的背景顏色

小結(jié) : 大盒子包住小盒子,注意標簽對不要交錯,以及class的屬性名一定要類選擇器保持一致
二. 第二步 —— 通過CSS的絕對定位屬性實現(xiàn)水平垂直都居中
目標 : 父盒子相對定位,子盒子絕對定位,設(shè)置left,top偏移量,使子盒子在父盒子中水平垂直都居中
1. 絕對定位方式配合margin外邊距屬性實現(xiàn)

所以,我們還需要使用margin負邊距,讓子元素居中,水平方向負子元素寬度的一半,垂直方向負子元素高度的一半

2. 上述方法,如果子元素的寬度高度改變的話,margin-left與margin-top也需要跟著改變才能保證居中,但是我們可以使用CSS3中的transform:translate平移屬性實現(xiàn)

小結(jié) : 使用絕對定位屬性position:absolute;設(shè)置left,top偏移量,配合margin或者transform屬性實現(xiàn)子盒子居中顯示
三. 第三步 —— 通過CSS的flex屬性實現(xiàn)水平垂直都居中
目標 : 通過css的彈性盒子flex的align-items,justify-content實現(xiàn)子元素水平垂直都居中

另外,可以通過 http://www.runoob.com/css3/css3-flexbox.html 快速學習彈性盒子布局
小結(jié) : 需要給父盒子設(shè)置display:flex;align-items:center;justify-content:center;
總結(jié)
實現(xiàn)元素水平垂直都居中步驟如下:
1. 書寫HTML結(jié)構(gòu),一個父盒子包裹一個子盒子,并給父盒子與子盒子一定的寬度高度,以及不同的背景顏色
2. 父盒子相對定位,子盒子絕對定位,設(shè)置left,top偏移量,使子盒子在父盒子中水平垂直都居中,但是還需要配合margin屬性或者transform:translate屬性
3. 還可以使用彈性flex布局實現(xiàn),在父盒子中
/*定義為彈性布局*/
display: flex;
/*垂直居中*/
align-items: center;
/*水平居中*/
justify-content: center;
1024首播|39歲程序員逆襲記:不被年齡定義,AI浪潮里再迎春天
2025-10-241024程序員節(jié)丨10年同行,致敬用代碼改變世界的你
2025-10-24【AI設(shè)計】北京143期畢業(yè)僅36天,全員拿下高薪offer!黑馬AI設(shè)計連續(xù)6期100%高薪就業(yè)
2025-09-19【跨境電商運營】深圳跨境電商運營畢業(yè)22個工作日,就業(yè)率91%+,最高薪資達13500元
2025-09-19【AI運維】鄭州運維1期就業(yè)班,畢業(yè)14個工作日,班級93%同學已拿到Offer, 一線均薪資 1W+
2025-09-19【AI鴻蒙開發(fā)】上海校區(qū)AI鴻蒙開發(fā)4期5期,距離畢業(yè)21天,就業(yè)率91%,平均薪資14046元
2025-09-19