前言
CSS居中一直是我想要整理記錄的,拖了很久,今天就順便整理一下
居中的多種方式
flex佈局居中
是我目前使用最多的一種方式,flex佈局也是現在最方便的一種佈局,廣泛用於pc端和移動端
.container{
display: flex;
align-items: center;
justify-content: center;
}
grid佈局居中
grid佈局是一種比flex更加強大的佈局,但是目前兼用性並不好,我使用的並不多,但也能實現居中
.container {
display: grid;
align-items: center;
justify-content: center;
}
display: table-cell
傳統中比較新的方法,我用的不多,需要水平居中就加上 text-align: center;
.container {
display: table-cell;
vertical-align: middle;
text-align: center;
}
絕對定位
傳統方法,適用於絕對定位
.container {
position: relative;
}
.child {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
特殊的方法
利用vertical-align: middle的特性和中線對齊,用偽元素將內部撐高,需要水平居中就加上 text-align: center。
.container {
width: 200px;
height: 200px;
border: 1px solid red;
text-align: center;
}
.container::before {
content: ``;
display: inline-block;
width: 0;
height: 100%;
vertical-align: middle;
}
簡單方法垂直居中
如果不加固定高度使用padding讓上下padding相等就可以實現垂直居中了,需要水平居中就加上 text-align: center,適用於一些較簡單的場景
.container {
padding: 10px 40px;
text-align: center;
}
單行文字固定行高垂直居中
如果需要固定高度,然後實現垂直居中,可以將高度設定成行高。同樣,需要水平居中就加上 text-align: center;
.container{
line-height: 50px;
text-align:center;
height: 50px;
}
水平居中
塊級元素,設定固定寬度,左右margin等於auto
div{
width: 200px;
margin: 0 auto;
}
行級元素居中
對塊級的父級使用,能讓內部的匿名行盒(文字)、行內元素(span)、inline-block元素在父親裡水平居中
.container{
text-align: center;
}
我的部落格即將同步至騰訊雲+社群,邀請大家一同入駐:https://cloud.tencent.com/dev…