You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

子div相对父div按百分比定位:absolute元素居中失效如何解决

问题原因

你当前的写法仅将.fish元素的左上角对齐到了父元素.game的中心,因此元素整体会向右下偏移,没有实现真正的居中。

解决方案

在.fish的样式规则中新增transform: translate(-50%, -50%);属性即可。
该属性会基于元素自身的宽高做偏移:向左平移自身宽度的50%,向上平移自身高度的50%,刚好让元素中心与父元素中心完全重合。你之前设置的transform-origin: center是浏览器默认值,无需调整,保留或删除都不影响最终效果。

额外注意:如果父元素.game没有显式设置高度,你需要先给它指定明确的高度值,否则相对定位的居中逻辑也会失效。

修改后完整代码

.game {
  background-color: #5386e4;
  overflow: hidden;
  position: relative;
  /* 此处替换为你实际需要的父容器高度 */
  height: 600px;
}

.fish {
  height: 320px;
  width: 300px;
  position: absolute;
  top: 50%;
  left: 50%;
  /* 新增以下这行代码即可实现居中 */
  transform: translate(-50%, -50%);
  z-index: 10000;
  background-color: #10121b;
}

内容的提问来源于stack exchange,提问作者Scotty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 14:36:04