Communitygithub.com

落地页质感打磨 第3步:桌面与手机布局体检

检查渲染后的页面在桌面和手机宽度下是否正常:不超出视口、文字不被裁切或塌陷、元素不重叠、字号不过小。

落地页质感打磨 第3步:桌面与手机布局体检 是什么?

落地页质感打磨配方第 3 步(上线前检查)。一个 Playwright 脚本按 1440 和 390 像素宽度加载每个路由,测量 DOM,只报告真正的布局问题,比如横向滚动、文字被裁、元素重叠和字太小,还能按宽度截图,方便上线前亲眼看一遍手机效果。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/abaskalov/claude-code-skills/tree/HEAD/layout-audit

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

布局审计

layout-audit.mjs(与该文件同目录)以多个宽度驱动页面并测量 DOM。它仅报告人们称之为布局缺陷的问题;可访问性是另一个独立的问题,本工具不涉及。

node ~/.claude/skills/layout-audit/layout-audit.mjs --base=http://localhost:3000 --routes=/,/pricing

标志:--routes(逗号分隔,默认为 /)、--widths(默认为 1440x900,390x844)、--auth=user:pass 用于基本认证、--shots=<dir> 用于为每个路由和宽度保存截图、--json 用于比较运行结果。Playwright 取自全局安装的 @playwright/cli,因此项目不增加依赖。

检查项

检查项含义
viewport-overflow元素超出视口边缘——页面出现横向滚动
clipped-text框裁剪了自身文本,既无省略号也无 title 属性,导致文本不可见
collapsed-text元素包含文本但高度为零——显示为空白间隙
overlapping-text两个文本框绘制在相同的像素位置
tiny-text字号小于手机可读的尺寸

处理结果

  • 在构建版本上运行,而非编辑中的开发服务器。 热重载会遗留未完全应用的样式。
  • 在修复之前按元素对发现结果进行分组。 一个跨十个路由共享的通用头部只是一个缺陷,而非十个;报告中的计数并非工作量。
  • 带省略号和 title 的截断是一种模式,而非缺陷——该工具已将其排除。如果某发现指出框裁剪了文本,则文本确实不可见。
  • 同一类元素上的重复发现是一个设计决策。 整体表面上的字体大小或颜色,属于设计方的职责;报告数据,让其决定,而非顺手修改配色。
  • 截图仍能捕获规则未明确说明的问题。 使用 --shots 参数并查看规则判定为干净的页面,尤其是手机宽度下的页面。
  • 一次干净的运行并不能说明手机端的情况。 Playwright 使用 iPhone 配置的 WebKit 并非 iPhone 上的 Safari。当报告的手机缺陷无法重现时,应说明情况,而非报告“一切正常”,然后索要设备或直接移除可疑机制。
  • 在信任零值之前,先证明规则会触发。 在测试页上植入缺陷,运行检查,观察规则报告该缺陷。尤其是页面级裁剪会使朴素的宽度比较在每个页面上都通过。

相关技能