在 CSS 中实现内容垂直居中可以通过多种方法,以下是一些常用的技巧:

1. 使用 Flexbox

Flexbox 是实现垂直居中的现代方法之一。

.container {
  display: flex;
  align-items: center; /* 垂直居中子元素 */
  justify-content: center; /* 如果需要水平居中也可以加上这一行 */
  height: 100vh; /* 容器高度设为视口高度 */
}
/* 子元素 */
.item {
  /* 子元素样式 */
}

2. 使用 Grid 布局

CSS Grid 也可以轻松实现垂直居中。

.container {
  display: grid;
  place-items: center; /* 同时实现水平和垂直居中 */
  height: 100vh; /* 容器高度设为视口高度 */
}
/* 子元素 */
.item {
  /* 子元素样式 */
}

3. 使用定位和 transform

如果你不想使用 Flexbox 或 Grid,可以使用绝对定位和 transform 属性。

.container {
  position: relative;
  height: 100vh; /* 容器高度设为视口高度 */
}
.item {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%); /* 使用 transform 进行居中 */
}

4. 使用表格布局

将容器设置为 display: table,并将子元素设置为 display: table-cell,然后使用 vertical-align 属性。

.container {
  display: table;
  height: 100vh; /* 容器高度设为视口高度 */
  width: 100%; /* 容器宽度设为100% */
}
.item {
  display: table-cell;
  vertical-align: middle; /* 垂直居中 */
  text-align: center; /* 如果需要水平居中也可以加上这一行 */
}

5. 使用行内块和文本属性

如果内容是行内块元素,可以使用 line-height 属性。

.container {
  height: 100vh; /* 容器高度设为视口高度 */
  line-height: 100vh; /* 行高与容器高度相同 */
  text-align: center; /* 水平居中 */
}
.item {
  display: inline-block;
  vertical-align: middle;
  line-height: normal; /* 重置行高 */
}

这些方法中,Flexbox 和 Grid 布局是现代 CSS 中最常用的,因为它们提供了简洁和强大的居中能力,并且易于维护。选择哪种方法取决于你的具体需求和浏览器兼容性要求。