頁面佈局中,居中對齊是咱們常常遇到的場景,如今總結幾個經常使用的方式供你們參考。css
html代碼:html
<div class="btn">Hello World</div>
CSS代碼:佈局
.btn{ width: 120px; height: 48px; border: none; background: #f8f8f8; color: #333; /* 文本水平居中 */ text-align: center; /* 文本垂直居中 */ ling-height: 48px; }
效果如圖所示:flex
HTML代碼:3d
<div class="father"> <div class="son"></div> </div>
CSS代碼:code
.father { width: 400px; height: 400px; margin: 0 auto; margin-top: 100px; background: lightblue; /*子元素定位能夠是相對定位,也能夠是絕對定位,因此父元素最好作定位限制。*/ position: relative; } .son { width: 100px; height: 100px; border: none; background: #1c3beb; /* 居中代碼,定位能夠是相對定位,也能夠爲絕對定位 */ position: relative; top: calc(50% - 50px); left: calc(50% - 50px); }
上面的子元素的偏移量計算,也能夠由CSS3中的新屬性transform來實現:orm
.son { width: 100px; height: 100px; border: none; background: #1c3beb; /* 居中代碼,定位能夠是相對定位,也能夠爲絕對定位 */ position: absolute; top: 50%; left: 50%; /*百分比是相對於自身寬高的偏移量計算*/ transform: translate(-50%, -50%); }
上面的子元素也能夠利用絕對定位元素的流體特性和margin:auto的自動分配特性來實現居中:htm
.father { width: 400px; height: 400px; margin: 0 auto; margin-top: 100px; background: lightblue; position: relative; } .son { width: 100px; height: 100px; border: none; background: #1c3beb; /* 居中代碼,定位爲絕對定位 */ position: absolute; top: 0; bottom: 0; left: 0; right: 0; margin: auto; }
.father { width: 400px; height: 400px; margin: 0 auto; margin-top: 100px; background: lightblue; /*啓用彈性佈局,主軸與交叉軸都採用居中對齊*/ display: flex; justify-content: center; align-items: center; } .son { width: 100px; height: 100px; border: none; background: #1c3beb; }
以上幾種對齊效果都同樣,可是考慮到兼容性等問題,推薦方式3。以上幾種方式的對齊效果以下:blog