justify-content控制主轴对齐,align-items控制交叉轴对齐,二者配合可实现如水平垂直居中等布局,需注意主轴方向、容器设置display:flex及子元素尺寸影响。

在使用 css Flexbox 布局时,justify-content 和 align-items 是两个核心的对齐属性,它们配合使用可以精确控制容器内子元素在主轴和交叉轴上的排列方式。
justify-content 控制主轴方向对齐
该属性定义了子元素在主轴(main axis)上的对齐方式。主轴的方向由 flex-direction 决定,默认是横向从左到右(row)。
常见取值包括:
- flex-start:元素向主轴起点对齐
- flex-end:元素向主轴终点对齐
- center:元素在主轴居中
- space-between:两端对齐,元素间间距相等
- space-around:每个元素周围有相等空间
- space-evenly:所有元素间及边缘间距完全相等
align-items 控制交叉轴方向对齐
该属性定义子元素在交叉轴(cross axis)上的对齐方式。如果主轴是横轴,交叉轴就是纵轴。
常用值有:
- flex-start:元素向交叉轴起点对齐(顶部)
- flex-end:元素向交叉轴终点对齐(底部)
- center:元素在交叉轴居中
- baseline:元素基线对齐
- stretch:元素拉伸以填满容器(默认值,无固定宽高时生效)
实际配合使用示例
假设你想让一个弹性盒子内的元素在容器中水平居中、垂直居中,可以这样设置:
立即学习“前端免费学习笔记(深入)”;
.container { display: flex; justify-content: center; /* 水平居中 */ align-items: center; /* 垂直居中 */ }
这个组合是最常见的居中布局方案,适用于登录框、弹窗、卡片等内容的居中显示。
如果主轴方向改为纵向(flex-direction: column),那么 justify-content 就会控制垂直方向,而 align-items 控制水平方向,这时需要调整理解角度。
注意事项与技巧
使用这两个属性时注意以下几点:
- 确保父容器设置了
display: flex或display: inline-flex - 子元素的尺寸会影响对齐效果,尤其是
align-items: stretch时 - 当内容换行时(
flex-wrap: wrap),可结合align-content控制多行之间的对齐 - 在响应式设计中,可根据屏幕尺寸动态调整对齐方式
基本上就这些。掌握 justify-content 和 align-items 的配合,就能高效实现大多数页面布局中的对齐需求,不复杂但容易忽略细节。


