先接受一个前提:你看到的界面和你读到的步骤不一致,不一定是步骤错了,也不一定是界面变了,更可能是两者描述的对象不同。继续定位的关键动作是先把“界面”拆成可核对的层次,而不是反复照着步骤重做。具体做法是:打开一个真实移动端页面,用浏览器开发者工具切换到移动设备模拟,记录当前视口宽度、页面实际渲染宽度、以及你操作的那一处控件在DOM中的位置。如果这三项中有一项与步骤描述的量级对不上,就说明你面对的不是同一层问题,后续排查方向要随之调整。
第一种解释是步骤描述的是“结果状态”,而你看到的界面是“中间状态”。比如步骤写“在移动端设置里把字体调到可读”,你打开设置面板看到的是字号选项,但页面实际显示并没有立刻变化,因为移动端文字缩放还受视口声明和系统字体设置共同影响。这种情况下,步骤没有错,只是它省略了触发条件。
第二种解释是步骤描述的是某一类模板或某一类页面,而你正在看的界面属于另一种结构。移动端优化里,列表页、详情页、表单页在同一个站点内可能使用不同的渲染方式。步骤里说的“导航折叠按钮”在列表页存在,在详情页可能被替换成返回箭头,这时你按步骤找不到对应控件,不是步骤失效,而是对象不匹配。
这两种解释的区别在于:前者是同一对象的状态差异,后者是不同对象的映射差异。定位方向完全不同。
能区分两者的证据不需要复杂工具,按顺序做三件事即可。
display: none或visibility: hidden,以及是否被媒体查询覆盖。如果控件根本不在DOM中,说明渲染逻辑不同,属于对象差异。这三步做完,你手里会有一个明确判断:继续按原步骤操作,还是先换一个同类页面再操作。这个判断直接决定下一步是调样式还是换对象。
假设你在做一个移动端导航优化,步骤写“点击右上角折叠按钮展开菜单”。你在首页能看到这个按钮,点开后菜单正常展开。但你换到文章详情页,右上角只有一个分享图标,没有折叠按钮。此时不要急着改代码。
先按上面的证据法检查:详情页的DOM里是否存在折叠按钮的容器。如果存在但被隐藏,检查媒体查询条件是否只在首页模板中生效。如果不存在,说明详情页模板没有引入同一套导航组件。两种情况下,你要做的事不同:前者是调整样式作用范围,后者是补齐模板结构。假设你误判为样式问题,只改了媒体查询,详情页仍然没有按钮,因为组件根本没加载。这个假设说明,区分对象差异和状态差异能避免把时间花在错误的方向上。
如果你能找到一个与步骤描述一致的对象,并且在该对象上操作成功,那么问题被限定在“部分页面不适用”,后续只需列出不适用的页面类型,逐一核对模板差异。如果你在所有同类对象上都找不到步骤描述的界面,那么问题可能出在步骤本身依赖了一个你没有启用的条件,比如某个移动端配置项、某个渲染模式或某个视口声明。
此时的实际动作是:回到步骤的起点,检查它是否隐含了一个前置条件,比如“在开启响应式布局后”。如果没有开启,界面自然不同。开启后重新观察,如果界面与步骤一致,说明遗漏条件就是它;如果仍不一致,再检查步骤是否针对的是另一个版本的模板或另一套组件。
需要提醒的是,改动前后比较要考虑季节、搜索需求变化和数据采集差异,不能把一次界面变化直接当成优化生效的证据。定位的目的是找到可复现的操作对象,而不是在界面不一致时反复试错。