space-evenly是justify-content的属性值,使flex容器内子元素间的间距及与容器边缘的距离完全相等,实现视觉对称布局。1. 设置display:flex后使用justify-content:space-evenly;2. 子元素之间及首尾与容器边距相同;3. 适用于导航、图标组等需均匀分布的场景;4. 现代浏览器支持良好,注意避免margin干扰布局效果。

justify-content: space-evenly 是 CSS Flexbox 布局中的一个属性值,用于在主轴(main axis)上均匀分配子元素之间的空间。使用 space-evenly 可以让所有子元素之间的间隔以及子元素与容器边缘的间隔完全相等,视觉上更对称、更整齐。
什么是 space-evenly?
space-evenly 是 justify-content 的一个可选值,适用于弹性容器(flex container)。它确保:
- 每个子元素之间的空白宽度相同
- 第一个子元素与容器起始边的距离 = 子元素之间的间距
- 最后一个子元素与容器结束边的距离也相同
这与其他值如 space-between 不同,space-between 的首尾元素会紧贴容器边缘,而中间间隔均分。
基本使用方法
要使用 justify-content: space-evenly,需先将容器设置为 flex 布局:
立即学习“前端免费学习笔记(深入)”;
.container {
display: flex;
justify-content: space-evenly;
}
示例 HTML 结构:
ABC
此时,A、B、C 三个元素之间的间距,以及 A 到左侧、C 到右侧的距离都相等。
适用场景
这个属性特别适合需要高度对称布局的情况:
- 导航菜单项居中且等距分布
- 图标组或按钮组的平铺排列
- 卡片式组件在一行中均匀展示
例如,做一个页脚图标栏:
.footer-icons {
display: flex;
justify-content: space-evenly;
padding: 20px;
}
.footer-icons .icon {
width: 40px;
height: 40px;
background: #ddd;
border-radius: 50%;
}
这样每个图标之间的距离和到边缘的距离一致,看起来更平衡。
兼容性与注意事项
space-evenly 在现代浏览器中支持良好,包括 Chrome、Firefox、Edge、Safari(部分旧版本 Safari 需测试)。
注意:
- 只在
display: flex或display: inline-flex下生效 - 作用于主轴方向,默认是水平方向(row)
- 如果子元素设置了 margin,可能会影响最终间距效果,建议统一通过 flex 控制布局
justify-content: space-evenly 能快速实现美观的等距布局,减少手动计算 margin 的麻烦。










