align-self属性用于单独控制Flex子元素在交叉轴的对齐方式,覆盖align-items设置。例如.container设align-items:center时,.item1通过align-self:flex-start可独立顶部对齐,其余子项仍居中,适用于表单、卡片等需差异化对齐的场景。

在使用 CSS Flexbox 布局时,align-self 属性可以让你单独控制某个子元素在交叉轴(cross axis)上的对齐方式,而不影响其他子元素。这个属性非常实用,尤其当你希望某个特定项目与其他项目对齐方式不同时。
align-self 是什么?
align-self 是应用于 flex 容器的子元素(flex item)的一个 CSS 属性。它会覆盖容器上设置的 align-items 值,实现个别项目的独立对齐。
常见取值包括:
- auto:默认值,继承父容器的 align-items 设置
- flex-start:顶部对齐(在垂直布局中)
- flex-end:底部对齐
- center:居中对齐
- baseline:基线对齐
- stretch:拉伸填满容器(前提是没有设置高度)
实际用法示例
假设你有一个 flex 容器,大多数子元素居中对齐,但你想让其中一个靠顶部对齐:
立即学习“前端免费学习笔记(深入)”;
顶部居中居中
CSS 样式如下:
.container {
display: flex;
align-items: center; /* 所有子项默认居中 */
height: 200px;
border: 1px solid #ccc;
}
.item {
padding: 10px;
}
.item1 {
align-self: flex-start; / 单独控制第一个元素靠顶部 /
}
结果是:.item1 会靠上对齐,而 .item2 和 .item3 仍保持居中。
适用场景
align-self 特别适合以下情况:
- 表单布局中,某些标签或输入框需要顶部对齐
- 卡片组件中,某个按钮或文字需要底部对齐
- 导航栏中有部分元素需要上移或下移一点
基本上就这些。只要容器是 flex 布局,就可以用 align-self 精确控制任意子元素的垂直对齐,灵活又简单。










