Flexbox 实现等高布局时需为容器设 min-height/height 以兼容 IE10–IE11,-ms-flex: 1 替代 flex: 1;CSS Table 兼容 IE8+ 但不支持 margin 和 vertical-align middle/bottom;Grid 在 IE 中不可用;JS 补位仅限必要场景。

Flexbox 是目前最简洁可靠的等高布局方案,但 display: flex 在 IE10–IE11 中需加 -ms- 前缀,且部分属性行为不一致。比如 align-items: stretch 默认生效,但若父容器未设高度,IE 下子项可能无法真正等高。
min-height 或 height(哪怕只是 min-height: 1px),否则 IE11 会忽略等高逻辑flex: 1 在 IE 中需写成 -ms-flex: 1,否则子项不占满剩余空间float 或 display: inline-block,IE 下易触发 layout bug当项目必须支持 IE8/9 时,display: table + display: table-cell 是最稳妥的等高方案,它天然具备单元格对齐特性,且无需 JS 干预。
display: table; width: 100%,子项设 display: table-cell
margin,需用 padding 或嵌套 div 控制间距table-cell 不支持 vertical-align: top 以外的值,慎用 middle 或 bottom
flex-wrap 自动换行纯 CSS 方案失效时(例如内容动态加载、跨 iframe 区域、或需要精确像素对齐),才考虑 JS 主动计算并设置高度。不要一上来就用 JS,它破坏可访问性且增加维护成本。
resize 和 DOMContentLoaded,避免重复计算;内容异步加载后需手动触发一次getBoundingClientRect().height 而非 offsetHeight,更准确反映渲染后尺寸document.querySelectorAll
if (typeof window !== 'undefined') 中CSS Grid 确实能一行代码实现等高(如 grid-template-rows: 1fr),但它在 IE 中完全不可用——IE 的 display: -ms-grid 是另一套不兼容的语法,且不支持 fr 单位和自动等高语义。
display: grid 全局支持率超 95%,但企业内网环境仍常见 IE11,需单独判断postcss-cssnext)自动加前缀,务必确认其不向 IE 输出无效的 Grid 代码