




用flex+min-height可真正解决弹窗垂直居中问题:父容器设min-height:100vh,启用display:flex、justify-content:center、align-items:center,弹窗无需绝对定位或负margin,内容动态变化时仍稳定居中。
弹窗无法垂直居中,多数是因为父容器没设高度、或用了不稳定的定位+负margin方案。用 flex + min-height 能真正解决——既适配内容动态变化,又无需JS计算,兼容性也够用(IE11+ 支持)。
弹窗要居中,前提是它的直接父容器(比如 body 或一个 wrapper)得“撑得起”视口。只写 height: 100% 不够,因为百分比高度依赖父级,容易断链。更可靠的是:
min-height,可能冲突在父容器上启用 flex,并让子元素(弹窗)自动对齐中心:
这样即使弹窗内容变高,也会始终居中,不会溢出或偏移。
弹窗内容太多时,光居中还不够,得防内容顶到顶部或底部。建议:
如果必须支持 IE10 或更低版本,flex 的 align-items: center 在部分 IE 中对 inline 元素表现异常。稳妥做法:
基本上就这些。flex 居中不是“看起来居中”,而是逻辑上真正居中——内容增减、窗口缩放、字体放大,它都稳得住。