Vertically and horizontally centers a child element within its parent element using display: table (as an alternative to flexbox).

  • display: table on ‘.center’ allows the element to behave like a <table> HTML element.
  • 100% height and width on ‘.center’ allows the element to fill the available space within its parent element.
  • display: table-cell on ‘.center > span’ allows the element to behave like an <td> HTML element.
  • text-align: center on ‘.center > span’ centers the child element horizontally.
  • vertical-align: middle on ‘.center > span’ centers the child element vertically.
  • The outer parent (‘.container’ in this case) must have a fixed height and width.

预览

Centered content



HTML

<div class="container">
  <div class="center"><span>Centered content</span></div>
</div>

CSS

.container {
  border: 1px solid #333;
  height: 250px;
  width: 250px;
}

.center {
  display: table;
  height: 100%;
  width: 100%;
}

.center > span {
  display: table-cell;
  text-align: center;
  vertical-align: middle;
}

翻译自:https://www.30secondsofcode.org/css/s/display-table-centering