在 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 中最常用的,因为它们提供了简洁和强大的居中能力,并且易于维护。选择哪种方法取决于你的具体需求和浏览器兼容性要求。