父容器必须是flex容器且显式设高度,align-items: center才有效;否则无参照系,子项按文档流堆叠。常见错误是漏设高度或误将该类加在子元素上。

父容器必须显式设高度且为 flex 容器
垂直对齐不是内容自己“动”,而是父容器用 align-items-center 控制子项在交叉轴上的位置。如果父容器没高度,align-items-center 就没参照系——子项会按默认文档流堆叠,看起来完全不居中。
常见错误是只加 d-flex align-items-center,却忘了给父容器设高:
-
h-100:适合嵌套在已有高度的容器内(比如栅格列) -
min-vh-100:全屏居中首选,兼容内容短/长两种情况 -
style="height: 300px;":固定高度场景可用,但响应式下易断裂 - 千万别用
height: 100%,它依赖父级高度,链路一断就失效
别把 align-items-center 加在子元素上
这个类只对 flex 容器生效,加在子元素(比如 正确层级结构必须是: 注意点: 典型失效场景: 稳妥写法始终是: 更隐蔽的问题: 真正“完美”的垂直居中,不是靠一个类,而是整条链路可控:容器高度 → flex 触发 → 对齐生效 → 内容适配。<div class="d-flex align-items-center h-100">
<div>我要居中的内容</div>
</div>
position: absolute,否则脱离 flex 流,对齐失效margin 或 padding,视觉居中可能偏移——建议用 h-100 撑满再对齐,而非靠内边距“凑” 并列)仍适用 align-items-center;若要整体上下居中且子项自身也需对齐,优先考虑 justify-content-center + 高度控制表格单元格垂直对齐必须作用于
或
align-middle、align-top 这类工具类,浏览器原生 vertical-align 行为一样,只对表格单元格元素本身有效。加在 或 上不会传递到子单元格。
—— 错, tr 默认是 display: table-row,不识别 flex 类
div 有 display: flex —— 错,对齐基准变成 div 内部,不再是单元格边界
bootstrap-table 插件,它偷偷给 tr 加了 height,压制了 vertical-align 计算内容 模态框垂直居中别只靠 modal-dialog-centered
modal-dialog-centered 确实能触发 transform 居中,但它依赖两个前提:父容器 .modal 是 flex 布局,且已设 align-items: center。Bootstrap 5 默认已满足,但如果你覆盖了 .modal 的 display,或动态插入后未触发重排,就会失效。
modal-dialog-centered 会让对话框顶部顶到视口边缘,而不是滚动——得配合 modal-dialog-scrollable
transform 渲染不稳定,窗口 resize 后可能偏移,需监听事件手动重置new bootstrap.Modal(...)),必须确保 DOM 已挂载完成再调用 show(),否则 flex 容器高度计算为 0
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











