开了广告拦截的访客反馈右侧栏整体上移 250 像素,正文和侧栏错开,关掉插件又恢复正常。乍看像缓存或者权限的锅,追下去往往不是。
.ad-slot:empty { display: none; }
.sidebar { min-height: 600px; }
追下去是这么回事:拦截规则按类名匹配,把含 ad 的容器直接设成 display:none。页面布局又依赖这个容器占位,一消失后面的元素全上移。
碰到「广告拦截布局」这类问题,我习惯先把当前配置原样备份一份,改坏了立刻换回来,不用现场推。接口问题先分清是没发出去、发出去了没收到,还是收到了处理失败。
偶发问题先统计频率,一小时几次和一天一次,查法完全不同。改完顺手把文档补一句,省得下次自己重新推一遍。
监控和日志的时间要对上,时区不一致会多绕很大一圈。
具体做法是,广告容器换成中性类名,别用 ad、ads、banner 这类关键词;布局高度由父级撑开,不依赖广告块;给广告位加 :empty 规则,空了也不塌;开着拦截插件走一遍三个主要模板。
验收就看一点,开启拦截后侧栏位置不变,正文没有被挤上去。
