新版浏览器里图片比例正常,部分旧版内核上容器高度塌成零。乍看像缓存或者权限的锅,追下去往往不是。
.thumb { position: relative; padding-top: 56.25%; }
.thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
@supports (aspect-ratio: 1) { .thumb { padding-top: 0; aspect-ratio: 16 / 9; } }
追下去是这么回事:旧内核不支持宽高比属性,容器没有其他高度来源。
「aspect-ratio 兼容」这个问题文档写得含糊,实际行为以当前版本为准,别照旧版本的结论套。接口问题先分清是没发出去、发出去了没收到,还是收到了处理失败。
偶发问题先统计频率,一小时几次和一天一次,查法完全不同。改完顺手把文档补一句,省得下次自己重新推一遍。
监控和日志的时间要对上,时区不一致会多绕很大一圈。临时改动用注释写上日期和原因,过两周自己都记不清为什么这么写。
动手前把原文件复制一份带时间戳,出问题立刻换回去,比现场分析快得多。
具体做法是,用内边距撑高的传统写法兜底;再声明宽高比覆盖;确保图片绝对定位填充。
验收就看一点,新旧浏览器中容器比例一致,无高度塌陷。