使用 `top: 50%; left: 50%` 配合 `position: absolute` 只会将元素左上角锚点移至父容器中心,而非整体居中;需配合 `transform: translate(-50%, -50%)` 才能真正实现水平垂直居中。
在

要真正实现水平垂直居中,必须额外补偿元素自身尺寸带来的偏移。现代、简洁且兼容性良好的方案是借助 transform:
.pinkfloyd {
display: inline-block;
position: relative; /* 确保成为 h2 的定位上下文 */
}
.pinkfloyd h2 {
font-size: 30px;
color: orangered;
position: absolute;
top: 50%;
left: 50%;
/* 关键修正:向左、向上平移自身宽高的一半 */
transform: translate(-50%, -50%);
}✅ 此写法优势明显:
⚠️ 注意事项:
? 进阶提示:若需兼容 IE8 及以下(极少数场景),可改用 margin 方案(需固定宽高):
h2 {
position: absolute;
top: 50%;
left: 50%;
width: 120px;
height: 40px;
margin: -20px 0 0 -60px; /* 负 margin = -height/2, -width/2 */
}总之,top: 50%; left: 50%; transform: translate(-50%, -50%) 是居中绝对定位元素的黄金组合,简洁、健壮、语义清晰,应作为首选方案。