
当使用 position: fixed 的导航栏与 overflow-y: scroll 的主内容区域共存时,导航栏会覆盖右侧滚动条,影响用户体验;本文提供一种基于 Flex 布局的优雅解决方案,既保留滚动吸附(snap scroll)功能,又确保滚动条完整可见。
当使用 `position: fixed` 的导航栏与 `overflow-y: scroll` 的主内容区域共存时,导航栏会覆盖右侧滚动条,影响用户体验;本文提供一种基于 flex 布局的优雅解决方案,既保留滚动吸附(snap scroll)功能,又确保滚动条完整可见。
在构建支持滚动吸附(scroll-snap)的单页应用时,开发者常为导航栏设置 position: fixed 以实现“始终置顶”效果。但这一做法会导致导航栏脱离文档流,进而遮盖 元素右侧的原生垂直滚动条——尤其在 Windows 或非 macOS 系统中,滚动条默认显示且占据空间,被遮挡后不仅视觉异常,还可能影响可访问性与交互体验。
根本原因在于:fixed 定位使导航栏脱离布局流,其下方内容(如 )的 overflow-y: scroll 滚动区域直接从视口顶部开始计算,滚动条自然被固定导航栏覆盖。
✅ 推荐解法:放弃 position: fixed,改用垂直 Flex 布局控制整体结构
将
设为 flex flex-col h-screen,让