最近在面試,不停地收到了知識衝擊,尤爲是對於一些基礎的css、html、js問題居多,因此自我也在作反思,今天就css問題,如何讓一個子元素div塊元素上下左右居中 (如下總結方法,都已獲得驗證)。css
情景一:一個瀏覽器頁面中,只有一個div模塊,讓其上下左右居中html
解決方案: { position:fixed;web
left:0;面試
right:0;瀏覽器
top:0;佈局
bottom:0;flex
margin:auto; }spa
備註:此處小編使用position:fixed爲最佳方案,由於position:fixed定位是相對於整個瀏覽器頁面的。orm
情景二:一個父元素div,一個已知寬度、高度的子元素div(200*300)htm
解決方案: 一、position佈局
{
position:absolute/fixed;
top:50%;
left:50%;
margin-left:-100px;
margin-top:-150px;
}
情景三:一個父元素div,一個未知寬度、高度的子元素div
解決方案: 一、position佈局,position設爲absolute,其餘同情景一
二、display:table
父級元素:{ display:table;}
子級元素: { display:table-cell;vertical-align:middle }
三、flex佈局
父級元素:{ display:flex;flex-direction:row;justify-content:center;align-items:center;}
子級元素:{flex:1}
四、translate
position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); -moz-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); -o-transform: translate(-50%, -50%); transform: translate(-50%, -50%);