三栏结构不对齐的主因是容器或子项默认行为未约束。需设父容器display: flex、justify-content: space-between、align-items: stretch,统一box-sizing: border-box,子项用flex: 1而非width百分比,并用flex-column居中内容。
三栏结构不对齐,通常不是因为内容长短不一,而是容器或子项的默认行为没被显式约束。用 flexbox 的 justify-content: space-between 确实能快速拉开间距,但若没配合其他关键设置,反而会让三栏“看起来错位”——比如高度不一致、文字基线偏移、margin干扰等。
只加 space-between 不够,必须确认父容器已正确启用 flex 布局,并清除默认干扰:
display: flex 和 justify-content: space-between
align-items: stretch(默认值,但显式写上更稳妥),让三栏自动等高margin、padding 或 box-sizing 不一致(推荐统一写 box-sizing: border-box)如果子项用了 width: 30% 这类固定比例,又同时启用了 space-between,容易因四舍五入或边框/内边距导致总宽度超 100%,触发换行或挤压。建议:
flex: 1)flex: 0 0 auto + 显式 width,但务必搭配 min-width: 0 防止内容撑开space-between 的计算逻辑即使容器对齐了,文字上下位置也可能参差——尤其当三栏里有图标、按钮或不同行数的段落时:
display: flex; flex-direction: column;,再用 justify-content: center 或 align-items: center 居中内容line-height 或 padding 控制垂直节奏,但优先用 flex 布局居中更可靠vertical-align: middle(它只对 inline 元素有效,对 flex 子项无效)基本上就这些。flex 的 space-between 本身不难,但容易忽略子项的默认行为和盒模型细节。调对了,三栏稳稳横排,不抖不歪。