使用 flexbox 实现聊天消息“底部对齐、向上滚动”时,`justify-content: flex-end` 会导致内容溢出不可滚动;正确方案是结合 `flex-direction: column-reverse` 与容器高度约束,并配合 javascript 动态滚动到底部。
在构建类 WhatsApp 的聊天界面时,一个常见需求是:新消息始终出现在视口底部,用户向下阅读(即向上滚动)查看历史消息。看似只需 display: flex; flex-direction: column; justify-content: flex-end 即可实现底部对齐,但实际中该方式会使容器无法自然触发垂直滚动——因为 Flex 容器会将子元素“推”至底部,而自身高度未被撑开,overflow-y: auto 失效。
✅ 推荐解决方案:column-reverse + 固定高度容器 + JavaScript 滚动控制

核心思路是:
以下是优化后的完整示例:
你好!今天过得怎么样? 还不错,刚开完会 ? 太好了!晚上一起吃饭? 好啊,老地方见!
⚠️ 注意事项:
总结:Flexbox 的 column-reverse 是纯 CSS 实现“底部锚定+向上滚动”的最优解;而 JavaScript 的 scrollTop = 0 是保障交互体验的关键补足。二者结合,即可稳健支撑生产级聊天 UI。