Saber2pr's Blog

水平垂直居中

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;
}