1. text-align + (table + vertical-align)
.parent {
text-align: center;
display: table;
}
.child {
display: table-cell;
vertical-align: middle;
/* 文本恢复左对齐 */
text-align: left;
}
2. transform
.parent {
position: relative;
}
.child {
position: absolute;
/*absolute定位参照物是父容器*/
left: 50%;
top: 50%;
/*translate的参照物是自身*/
transform: translate(-50%, -50%);
}
如果子元素宽度知道,也可以把 translate 换成 (margin-left + margin-top) 负边距(偏移自身一半)
3. justify-content + align-items
flex 容器
不兼容 IE10 以下
.parent {
display: flex;
justify-content: center;
align-items: center;
}