水平垂直居中的主流方案:
1. Flex(最常用)
.parent { display: flex; justify-content: center; align-items: center; }
2. Grid(最简短)
.parent { display: grid; place-items: center; }
3. 绝对定位 + transform(兼容性好,不需知道子元素尺寸)
.parent { position: relative; }
.child {
position: absolute;
top: 50%; left: 50%;
transform: translate(-50%, -50%);
}
4. 绝对定位 + margin: auto(需给定子元素宽高)
.child { position: absolute; inset: 0; margin: auto; width: 100px; height: 100px; }
补充:单行文本用 text-align: center + line-height 等于容器高度;table-cell 方案(vertical-align: middle)已较少使用。
易错点:transform 方案在子元素尺寸为奇数像素时可能模糊;margin: auto 方案必须同时设置四方向定位与固定宽高。追问:不定宽高、需要兼容旧浏览器时选哪种;Grid 与 Flex 居中在溢出时的行为差异。