CSS垂直居中

第一種:基于絕對定位的解決方案

用top,left移動只是將div的左上角移到父元素的正中心,視覺上并沒有使div到達中心,所以要配合transform使用。當我們在translate() 變形函數(shù)中使用百分比值時,是以這個元素自身的寬度和高度為基準進行換算和移動的。

缺點:如果需要居中的元素已經(jīng)在高度上超過了視口,那它的頂部會被視口裁切掉。

div { ?position:absolute;top:50%;left:50%;transform:translate(-50%,-50%); }

第二種:基于視口單位的解決方案

新的長度單位:vw,vh

1vw=1%的適口寬度

1vh=1%的視口寬度

div {

width: 18em;

padding: 1em 1.5em;

margin: 50vh auto 0;

transform: translateY(-50%);

}

第三種:基于flexbox的解決方案

先給這個待居中元素的父元素設(shè)置 display:flex ,再給這個元素自身設(shè)置我們再熟悉不過的 margin: auto :

father{ display:flex;min-height:100vh;margin:0;}

child{ margin:auto;

/*以下代碼使child的文字也居中

align-items:center; justify-content:center;

*/

}

直接讓某div的文字居中,使用屬性

{display: flex;

align-items: center;

justify-content: center;}

ps. ? min-content也是個很有用的屬性 。這個關(guān)鍵字將解析為這個容器內(nèi)部最大的不可斷行元素的寬度(即最寬的單詞、圖片或具有固定寬度的盒元素)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 44年前我們就把人類送上月球了,但現(xiàn)在我們?nèi)匀粺o法在CSS中實現(xiàn)垂直居中。 在CSS中對元素進行水平居中是非常簡單...
    康斌閱讀 15,903評論 9 28
  • 對于最流行的表格布局法和行內(nèi)塊法不去考慮,只考慮用最新的現(xiàn)代CSS去實現(xiàn) 基于絕對定位的解決方案 1.早期解決方法...
    咕咚咚bells閱讀 260評論 0 0
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽?zāi)J的外補...
    _Yfling閱讀 13,796評論 1 92
  • 標簽:css-常用技巧 table-cell 式將 center 元素的父容器設(shè)置為 display:table,...
    練曉習(xí)閱讀 528評論 0 1
  • 何為修道? 青發(fā)白袍,宛若林中泉,山間雪,美到極致,也冷到極致。不染煙火,不理塵俗。 何為修道? 她只見那人神色淡...
    青團子喵閱讀 389評論 0 1