本文介绍一种纯 css 方案,通过 position: sticky 分别控制左侧导航中“顶部区域”和“底部区域”的定位行为,使其在页面滚动时始终可见,且无需 javascript,同时兼容 header 高度变化场景。
在构建带左侧导航栏(Sider)的响应式布局时,一个常见但易被忽视的需求是:左侧菜单需在垂直方向上“智能占满可视区域”,且其顶部和底部内容(如 Logo 和用户信息)应始终保留在视口内,不受页面滚动或顶部 Header 遮挡影响。直接设置 .sider { height: 100vh } 虽能撑满视口,但无法动态避开固定 Header 的占用空间;而使用 100% 高度又受限于父容器(.main)未设高度,导致失效。
解决方案的核心在于放弃对整个 .sider 设置统一高度,转而将定位逻辑下沉至内部子元素——利用 sticky 的独立锚点特性,让顶部和底部内容各自“粘住”视口边缘:
.inner-top {
position: sticky;
top: 0; /* 粘住视口顶部 */
z-index: 10; /* 确保不被其他元素遮盖 */
}
.inner-bottom {
position: sticky;
bottom: 0; /* 粘住视口底部 */
z-index: 10;
}同时,保留原有结构语义与 Flex 布局优势:
✅ 关键注意事项:
最终效果:无论页面是否滚动、Header 是否在视口中,“TOP SIDER” 始终贴顶,“BOTTOM SIDER” 始终贴底,左侧导航视觉上呈现“自适应全高”体验,且代码简洁、零 JS 依赖、语义清晰。
# css
# javascript
# java
# js
# go
# 浏览器
# edge
# safari
# ai
# 响应式布局
# overflow
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
网络优化76771 】
【
技术知识130152 】
【
IDC云计算60162 】
【
营销推广131313 】
【
AI优化88182 】
【
百度推广37138 】
【
网站推荐60173 】
【
精选阅读31334 】
相关推荐:
C++中的std::shared_from_this有什么用?C++安全获取this的shared_ptr【智能指针】
如何使用Golang实现函数指针_函数变量与回调示例
如何在 Go 中创建包含 map 的 slice(嵌套数据结构)
Win11怎么关闭贴靠布局_Win11禁用窗口最大化时的布局菜单
Win11怎么设置麦克风权限_允许应用访问Win11麦克风【详解】
Windows 10自带杀毒软件在哪_Windows 10打开和使用Windows安全中心
Go 中 := 短变量声明的类型推导机制详解
Mac如何设置动态壁纸?(让桌面动起来)
如何在 Go 中正确反序列化多个并列的 XML 元素(而非 XML 数组)
PHP主流架构怎么监控运行状态_工具推荐【操作】
Win11怎么设置闹钟_Windows 11时钟应用闹钟设置指南【详解】
Win11鼠标灵敏度怎么调 Win11鼠标指针移动速度设置【教程】
Windows10怎么查看系统激活状态_Windows10激活状态查看方法【教程】
php485在macos下怎么配置_php485 macOS系统配置指南【解答】
如何使用Golang实现容器自动化运维_Golang Docker运维管理方法
如何在 Go 中创建包含映射(map)的切片(slice)结构
Windows10如何重置此电脑_Windows10电脑重置方法【步骤】
Win11任务栏怎么固定应用 Win11将软件图标固定到底部【步骤】
如何使用Golang安装API文档生成工具_快速生成接口文档
如何用正则与预处理高效拦截带干扰符的恶意域名
c++中如何进行二进制文件读写_c++ read与write函数用法
Windows10怎么用“讲述人”读屏辅助 Windows10轻松使用开启讲述人朗读屏幕文字帮助视障用户【教程】
Go 语言标准库为何不提供泛型 Contains 方法?
Win11怎么关闭应用权限_Windows11相机麦克风隐私管理
Win11怎么关闭边缘滑动手势_Windows11禁用触摸屏边缘操作
Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】
Go语言中slice追加操作的底层共享机制解析
Windows 11登录时提示“用户配置文件服务登录失败”怎么办_Windows 11修复损坏的用户配置文件
c++如何用AFL++进行模糊测试 c++ Fuzzing入门【安全】
Django 密码修改后会话失效的解决方案
微信企业付款回调PHP怎么接收_处理企业付款异步通知数据教程【教程】
c# 如何用c#实现一个支持优先级的任务队列
Win11怎么压缩文件 Win11自带压缩解压功能使用【教程】
如何在Golang中解压文件_Golang compress/gzip解压操作方法
为什么Go需要go mod文件_Go go mod文件作用说明
微信里的php文件怎么变mp4_微信接收php转mp4操作步骤【操作】
php订单日志怎么导出excel_php导出订单日志到表格教程【教程】
如何使用正则表达式批量替换重复的 *- 模式为固定字符串
C++如何使用std::transform批量处理容器元素?(代码示例)
Win11怎么激活Windows10_Win11激活Win10系统方法【步骤】
c++怎么使用std::unique实现去重_c++ 容器元素排序与连续重复删除【教程】
C++中引用和指针有什么区别?(代码说明)
如何自定义Windows终端的默认配置文件?(PowerShell/CMD)
如何在 VS Code 中正确配置并使用 NumPy
如何使用Golang实现聊天室消息存档_存储聊天记录到文件
Win11怎么查看激活状态_查询Windows 11是否已永久激活【详解】
Mac如何将HEIC图片格式转为JPG_Mac批量转换图片【指南】
Win11怎么退出微软账户_切换Win11为本地账户登录方法【详解】
Windows10系统怎么查看显卡驱动_Win10设备管理器驱动更新
Win11怎么查看电脑配置_Win11硬件配置详细查询方法【详解】
2025-12-29
致胜网络推广营销网专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。