E6.02.2stacked banners设计
多条横幅堆叠会挤压内容
别名: 横幅堆叠 · alert stack · 多条警示
概念解释
横幅一旦常驻,每一条都要从内容区拿走一条固定高度。堆叠(stacking)是多条横幅同时占据这块槽位,把主内容、表格首行或筛选条顶出首屏。问题不是「横幅该不该留下」,而是同时留下几条。一条过期提醒还可以接受;许可证、只读、同步失败、试用到期再叠四层,用户要先关闭通知才能看见自己来找的那张表。堆叠把状态通道变成了另一种导航障碍。
机制
视口高度是硬预算。横幅插在流的顶端时,下面每一像素都下移;移动端再叠加系统状态栏、应用顶栏,两三条横幅就能把首项推到折叠线以下。人进来先找内容,不是先处理通知。内容被挤走后,横幅反而成了唯一可见物,阅读顺序被颠倒:先消化异常,再开始任务。更糟的是各条横幅来自不同子系统,没有总协调,谁先返回谁就先占一层。关闭其中一条,其余的高度重新回流,列表滚动位置跟着跳,用户会以为自己丢了位置。堆叠的代价不只是少一块内容,还包括回流造成的空间失控。
边界
同一事态的不同表述不应各占一条——「离线」和「保存将失败」是一件事,合并后并不少信息。页面级横幅与应用级横幅同时出现时,若范围相同,留范围更大的那条。仪表盘或监控墙本身就以状态条带为内容,堆叠是产品形态,不能用「不要挤内容」一刀切掉。窄屏上的一条长横幅折成三行,视觉上等于堆叠,即使对象只有一个。全屏对话框里再塞横幅,会把对话框的按钮顶出可达区,这比挤列表更严重。
怎么落地
- 给横幅槽位设同时可见上限,通常一条,最多两条;超出的合并进「还有 n 条」或一条摘要,点开再看明细。
- 同源或同范围的消息在进入槽位前合并,禁止许可证模块和同步模块各贴一条说同一限制。
- 横幅出现或消失时锁住内容的滚动锚点,避免关闭一条之后列表跳到别处。
- 验证:在真机首屏截图,叠上产品里可能同时为真的全部状态。主内容第一条或主操作若已不在首屏,堆叠就已经失败。