Flexbox弹性布局通过定义主轴和交叉轴的方向,让容器内的子元素能够灵活调整排列顺序与对齐方式,其中justify-content属性专门用于设置子元素在主轴方向上的对齐规则,其取值决定了容器内元素的最终排布效果。

justify-content的基础概念
在使用justify-content之前,需要先明确Flex容器的主轴方向,主轴默认是水平方向(从左到右),也可以通过flex-direction属性修改为垂直方向(从上到下)。justify-content的所有取值都是基于当前主轴方向生效的,主轴方向改变时,对齐的参考方向也会同步变化。
justify-content的所有取值及效果
1. flex-start
这是justify-content的默认值,子元素会向主轴的起始位置对齐。如果主轴是水平方向,元素会靠左排列;如果主轴是垂直方向,元素会靠上排列。
/* 容器基础样式 */
.flex-container {
display: flex;
width: 500px;
height: 100px;
border: 1px solid #ccc;
/* 主轴对齐方式设置为起始对齐 */
justify-content: flex-start;
}
.flex-item {
width: 80px;
height: 80px;
background: #4CAF50;
margin: 10px;
}
2. flex-end
子元素会向主轴的结束位置对齐。水平主轴时元素靠右排列,垂直主轴时元素靠下排列。
.flex-container {
display: flex;
width: 500px;
height: 100px;
border: 1px solid #ccc;
/* 主轴对齐方式设置为结束对齐 */
justify-content: flex-end;
}
.flex-item {
width: 80px;
height: 80px;
background: #2196F3;
margin: 10px;
}
3. center
子元素会在主轴方向上居中对齐,所有元素整体位于容器的中间位置。
.flex-container {
display: flex;
width: 500px;
height: 100px;
border: 1px solid #ccc;
/* 主轴对齐方式设置为居中对齐 */
justify-content: center;
}
.flex-item {
width: 80px;
height: 80px;
background: #FF9800;
margin: 10px;
}
4. space-between
子元素会均匀分布在主轴上,第一个元素靠主轴起始位置,最后一个元素靠主轴结束位置,中间的元素之间间隔相等。
.flex-container {
display: flex;
width: 500px;
height: 100px;
border: 1px solid #ccc;
/* 主轴对齐方式设置为两端对齐 */
justify-content: space-between;
}
.flex-item {
width: 80px;
height: 80px;
background: #F44336;
margin: 10px;
}
5. space-around
子元素会均匀分布在主轴上,每个元素两侧的间隔相等,因此元素之间的间隔会比元素与容器边缘的间隔大一倍。
.flex-container {
display: flex;
width: 500px;
height: 100px;
border: 1px solid #ccc;
/* 主轴对齐方式设置为周围等距对齐 */
justify-content: space-around;
}
.flex-item {
width: 80px;
height: 80px;
background: #9C27B0;
margin: 10px;
}
6. space-evenly
子元素会均匀分布在主轴上,元素之间、元素与容器边缘的间隔完全相等。
.flex-container {
display: flex;
width: 500px;
height: 100px;
border: 1px solid #ccc;
/* 主轴对齐方式设置为完全等距对齐 */
justify-content: space-evenly;
}
.flex-item {
width: 80px;
height: 80px;
background: #00BCD4;
margin: 10px;
}
不同取值的适用场景
- flex-start适合需要元素靠起始位置排列的场景,比如导航栏的菜单项默认排列
- flex-end适合需要元素靠结束位置排列的场景,比如页面底部的操作按钮组
- center适合需要元素整体居中的场景,比如弹窗内的内容区域
- space-between适合需要首尾元素贴边、中间元素等距的场景,比如顶部的导航加右侧的用户信息区域
- space-around适合需要元素周围都有间隔的场景,比如卡片列表的排列
- space-evenly适合需要所有间隔完全一致的场景,比如等距分布的图标组
注意事项
当Flex容器内的子元素总宽度超过容器宽度时,justify-content的对齐效果会失效,此时子元素会按照flex-wrap属性的设置决定是否换行。如果设置了换行,换行后的行与行之间不会受justify-content的影响,行内元素依然会按照justify-content的取值对齐。
另外,如果子元素设置了margin属性的auto值,margin会自动吸收主轴上的剩余空间,此时justify-content的设置可能不会生效,需要根据实际需求调整margin和justify-content的搭配使用。
Flexboxjustify_contentCSS布局主轴对齐修改时间:2026-07-01 00:24:28