全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-16 5 分钟 ✍️ juanwangdev

Flex布局之align-self

align-self 允许单个子元素覆盖容器的 align-items 设置,实现独立的交叉轴对齐。

语法

CSS
.item {
  align-self: auto | flex-start | flex-end | center | baseline | stretch;
}

属性值说明

说明
auto继承父元素的 align-items 值(默认)
flex-start交叉轴起点对齐
flex-end交叉轴终点对齐
center交叉轴居中对齐
baseline基线对齐
stretch拉伸填满交叉轴

基本用法

默认对齐 vs 单独控制

CSS
.container {
  display: flex;
  align-items: stretch;  /* 容器默认等高 */
  height: 200px;
}

.item {
  /* 默认继承 stretch */
}

.item-special {
  align-self: center;  /* 单独居中对齐 */
}

多种对齐混合

CSS
.container {
  display: flex;
  height: 150px;
  border: 1px solid #ccc;
}

.item-start { align-self: flex-start; }
.item-center { align-self: center; }
.item-end { align-self: flex-end; }
.item-stretch { align-self: stretch; }
HTML
<div class="container">
  <div class="item-start">起点对齐</div>
  <div class="item-center">居中对齐</div>
  <div class="item-end">终点对齐</div>
  <div class="item-stretch">拉伸</div>
</div>

常见场景

导航栏图标对齐

CSS
.nav {
  display: flex;
  align-items: center;
  height: 60px;
}

.nav-logo {
  align-self: flex-start;  /* Logo 顶部对齐 */
}

.nav-menu {
  align-self: center;      /* 菜单居中 */
}

.nav-action {
  align-self: flex-end;    /* 操作按钮底部对齐 */
}

卡片底部按钮

CSS
.card {
  display: flex;
  flex-direction: column;
}

.card-footer {
  align-self: flex-end;    /* 按钮靠右底部 */
  margin-top: auto;        /* 推到底部 */
}

单个元素突出

CSS
.toolbar {
  display: flex;
  align-items: center;
}

.toolbar-title {
  align-self: stretch;    /* 标题占满高度 */
  display: flex;
  align-items: center;
}

注意事项

  • align-self 只影响交叉轴对齐(主轴为行时是垂直方向)
  • 如需控制主轴对齐,使用 justify-self(Grid 支持,Flex 不支持)
  • 单个元素的 align-self 会覆盖容器的 align-items

与 align-items 的关系

CSS
/* 容器设置全局对齐 */
.container {
  display: flex;
  align-items: center;  /* 全局居中 */
}

/* 单个元素覆盖 */
.item {
  align-self: flex-start;  /* 单独顶部对齐 */
}

要点总结

  • align-self 覆盖容器 align-items 的设置
  • 常用值:flex-startcenterflex-endstretch
  • 实现单个元素独立对齐,其他元素保持默认
  • 交叉轴方向对齐(水平布局时为垂直方向)

📝 发现内容有误?点击此处直接编辑

← 上一篇 BFC 块级格式化上下文
下一篇 → Flex布局之gap/row-gap/column-gap
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库