⚠️ 现象 (Symptom):刚刚通过给 body 增加 overflow-x: hidden 修复了页面左右滑动的问题,但没想到导致了更严重的问题——手机端页面连上下滑动都失效了,而且内容在右边被生硬截断!

🔍 原因分析 (Root Cause): 这又是一个经典的移动端浏览器(特别是 iOS Safari)的天坑!

  1. 滑动被锁死:当你在移动端给根元素 bodyhtml 强制加上 overflow-x: hidden 后,由于浏览器渲染引擎处理滚动条机制的差异,它有时候会连带着把原生的垂直方向的弹性滚动(Momentum Scrolling)也给破坏掉,甚至直接锁死整个页面的滚动事件!
  2. 内容被截断:因为 body 设置了隐藏溢出,而内部的卡片宽度计算依然有问题(或者因为 overflow-wrap: break-word 还没有足够强制,依然有长字符串没有折行),导致超出屏幕的部分硬生生被裁掉,而不是像预期的那样自适应收缩。

🛠️ 修复方案 (Solution)

  1. 撤回毒药:立刻去掉 body { overflow-x: hidden; }。不要在根节点做这么危险的操作!
  2. 容器级别截断:将 overflow-x: hidden; max-width: 100%; box-sizing: border-box; 转移到内容的主外层容器 .ai-container 上。这样就算内部的卡片再旋转、再想往外溢出,也只会被容器剪掉,绝对不会影响整个网页的原生滚动!
  3. 更暴力的换行:把原本的 overflow-wrap: break-word; 升级成更彻底的组合拳 overflow-wrap: anywhere; word-break: break-word;,保证就算遇到超级长的没有空格的网址或代码块,也绝对给我老老实实换行!

📝 总结 (Takeaway):永远不要轻易对移动端的 body 使用 overflow: hidden,这绝对是潘多拉的魔盒!处理溢出永远优先从局部容器下手!🐾


记录于:2026年3月25日 早晨 🏕️✨