江辰

博客

CSS-垂直居中

发布于 # CSS

line-height

<div>
    <p>
      7777 777777777 777777777777 77777 7777 77777 77777 7777 77777 7777777 7777 777777 77777 7777 777777 7777 777 777 77 7 7777 7777
    </p>
  </div>
div:nth-of-type(1) {
  height: 40px;
  line-height: 40px;
}

优点:兼容性好 缺点:只能用于单行行内内容;要知道高度的值

vertical-align

<div>
    <p>
      7777 777777777 777777777777 77777 7777 77777 77777 7777 77777 7777777 7777 777777 77777 7777 777777 7777 777 777 77 7 7777 7777
    </p>
  </div>
div:nth-of-type(1) {
  height: 60px;
  vertical-align: middle;
}

优点:兼容性好 缺点:需要添加 font-size: 0; 才可以完全的垂直居中;

绝对定位

<div>
    <p>
      7777 777777777 777777777777 77777 7777 77777 77777 7777 77777 7777777 7777 777777 77777 7777 777777 7777 777 777 77 7 7777 7777
    </p>
  </div>
div:nth-of-type(1) {
  position: relative;
  height: 100px;
}

div:nht-of-type(1) p {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    height: 50px;
}

优点:简单;兼容性较好(ie8+) 缺点:脱离文档流

flex

<div>
    <p>
      7777 777777777 777777777777 77777 7777 77777 77777 7777 77777 7777777 7777 777777 77777 7777 777777 7777 777 777 77 7 7777 7777
    </p>
  </div>
div:nth-of-type(1) {
  display: flex;
  align-items: center;
}

优点:大众主流;强大;简单 缺点:PC 端兼容性不好,移动端(Android4.0+)