首页头图用 background-size: cover,桌面端构图正好,手机上人被裁掉半个,只剩下一片背景,换到平板又是另一个样子,这个取舍很常见。碰到这种情况,我一般先确认改动有没有真的生效。

原因不复杂,cover 按容器比例等比放大再居中裁切,窄屏容器比例和原图差太多,默认 center 就把主体切出去了。主体位置只能靠 position 拉回来,先用两张图分开测。

「背景图裁切位置」相关的验证我通常做两遍,改完一次、隔天再看一次,确认不是临时生效。别只看报错的最后一行,往上看几行,真正的起因通常在上面。

.hero { background-position: center 30%; }
@media (max-width:640px) {
  .hero { background-position: center 20%; }
}

同类问题如果隔一段时间又出现,多半是某个定时任务或重启流程把改动冲掉了。

具体做法是,给背景图单独写 background-position,把主体推到可见区,百分比比关键字好调;窄屏媒体查询里换一张竖版或方版图,别硬裁同一张;用 object-fit: cover 的 img 配合容器,位置更好控制,图片语义也更完整。

最后用这个标准收尾,手机上头图主体完整落在可视区,桌面端构图没有被影响,两种屏都看一眼。

作者 9823189