align-items设置容器内所有子项在交叉轴的对齐方式,如center居中、stretch拉伸;align-self用于单独调整某个子项的对齐,覆盖父级align-items。例如导航栏整体居中对齐,特殊按钮通过align-self: flex-end下沉到底部,实现统一布局下的灵活微调。

在使用CSS Flex布局时,align-items 和 align-self 是控制交叉轴(cross axis)对齐的关键属性。它们能帮助我们快速实现元素在容器中的垂直对齐效果,尤其在响应式设计中非常实用。
align-items:控制所有子项的交叉轴对齐方式
align-items 设置在弹性容器上,用于统一定义所有子项在交叉轴上的对齐方式。常见的取值包括:
- flex-start:子项靠交叉轴起点对齐
- flex-end:子项靠交叉轴终点对齐
- center:子项在交叉轴居中对齐
- baseline:子项按文本基线对齐
- stretch(默认值):子项拉伸填满整个容器(前提是未设置高度)
示例:
.container {
display: flex;
align-items: center; /* 所有子项垂直居中 */
}
align-self:单独控制某个子项的对齐方式
如果只想调整某一个子项的对齐,可以用 align-self。它会覆盖 align-items 的设置,作用于单个子项。
立即学习“前端免费学习笔记(深入)”;
- 取值与 align-items 相同
- 适用于需要局部微调的场景
示例:
.item {
align-self: flex-end; /* 这个子项单独靠底部对齐 */
}
实际应用场景
假设有一个导航栏,大部分内容垂直居中,但其中一个按钮需要靠下对齐:
.nav {
display: flex;
align-items: center; /* 整体居中 */
height: 80px;
}
.btn-special {
align-self: flex-end; /* 特殊按钮下沉 */
}
这样既保持了整体一致性,又能灵活处理个别元素。
基本上就这些,掌握这两个属性,就能轻松应对大多数Flex垂直对齐需求。










