css Flexbox容器内嵌子元素垂直对齐

通过align-items和align-self控制Flexbox子元素垂直对齐:1. align-items设置容器内所有子元素在交叉轴上的对齐方式,如center实现垂直居中;2. align-self用于单个子元素,可覆盖父容器的align-items设置;3. 垂直居中需容器有明确高度,常用justify-content与align-items配合实现。

在 Flexbox 容器中实现子元素的垂直对齐,主要通过 align-itemsalign-self 属性控制。以下是常用方法和场景说明。

1. 使用 align-items 实现整体垂直对齐

该属性设置在 Flex 容器上,用于统一控制所有子元素在交叉轴(默认为垂直方向)上的对齐方式。

  • align-items: center; — 子元素在容器中垂直居中
  • align-items: flex-start; — 子元素顶部对齐
  • align-items: flex-end; — 子元素底部对齐
  • align-items: stretch; — 子元素拉伸填满容器(默认值)
  • align-items: baseline; — 子元素文字基线对齐
  • 示例:

    .container {
      display: flex;
      align-items: center; /* 垂直居中 */
      height: 200px;
    }
    

    2. 单个子元素特殊对齐:使用 align-self

    如果只想调整某个子元素的垂直对齐方式,可以在该子元素上使用 align-self,它会覆盖容器的 align-items 设置。

  • align-self: center; — 单独居中该元素
  • align-self: flex-start; — 该元素顶部对齐
  • align-self: flex-end; — 该元素底部对齐
  • 示例:

    .item-2 {
      align-self: flex-end; /* 只让第二个子元素底部对齐 */
    }
    

    3. 垂直居中常见场景

    想让一个或多个子元素在容器中真正“垂直居中”,最简单的方式是:

    .container {
      display: flex;
      justify-content: center; /* 水平居中 */
      align-items: center;     /* 垂直居中 */
      height: 100vh; /* 确保容器有高度 */
    }
    

    注意:容器必须有明确的高度,否则 align-items 不会生效。

    基本上就这些。灵活使用 align-items 和 align-self,就能轻松控制 Flex 子元素的垂直对齐。