基于基线(四线三行)
.parent {
display: table;
}
.child {
display: table-cell;
vertical-align: middle;
}
.parent {
position: relative;
}
.child {
position: absolute;
top: 50%; /* absolute定位参照物是父容器 */
transform: translateY(-50%); /*translate的参照物是自身 */
}
如果子元素宽度知道,也可以把 translateY 换成 margin-top 负边距(偏移自身一半)
flex 容器
不兼容 IE10 以下
.parent {
display: flex;
align-items: center;
}
/*或者*/
.child {
align-self: center;
}
子元素行高设置为父元素高度
.parent {
height: 100px;
}
.child {
line-height: 100px;
}