侧边栏收缩布局怎么实现_借助flex动态调整宽度


侧边栏收缩布局用 Flex 实现,核心是类名切换控制 width + transition 动画,主内容区设 flex: 1 和 min-width: 0,侧边栏设初始 width、min-width: 0 且不设 flex-shrink: 0;收缩时通过 .sidebar-collapsed 切换 width 和 overflow,图标保留、文字 opacity/width 归零;小屏下媒体查询隐藏侧边栏,汉堡菜单以 fixed 覆盖层唤出。

侧边栏收缩布局用 Flex 实现,核心是利用 flex 的弹性行为 + 类名切换控制宽度,配合 CSS 过渡实现平滑收放效果,无需 JS 计算尺寸。

基础结构:用 flex-direction: row 搭建主-侧布局

容器设为 display: flex,主内容区用 flex: 1 自适应剩余空间,侧边栏设初始宽度(如 width: 260px)并允许收缩:

  • 侧边栏不写 flex: 0 0 auto(默认即可),但需加 min-width: 0 防止内容撑宽
  • 主内容区必须设 min-width: 0,否则文字或长单词可能破坏收缩逻辑
  • 避免在侧边栏上直接写 flex-basisflex-shrink: 0,否则无法压缩

收缩控制:用 class 切换触发宽度变化

定义一个 .sidebar-collapsed 类,只改侧边栏的 widthoverflow,不碰 flex 属性:

  • .sidebar { width: 260px; transition: width 0.3s ease; }
  • .sidebar-collapsed { width: 60px; overflow: hidden; }
  • JS 只负责增删该 class,不操作 style 或 offsetWidth

图标与文字的响应式显示

侧边栏内元素根据宽度自动显隐,不用媒体查询:

  • 文字用 span 包裹,初始 opacity: 1; width: auto;
  • 收缩时加 .sidebar-collapsed span { opacity: 0; width: 0; },再配 overflow: hidden
  • 图标保持显示,可加 flex-shrink: 0 防被压缩变形

适配移动端:折叠后隐藏侧边栏

小屏下直接隐藏侧边栏,用汉堡菜单唤出:

  • 媒体查询中设 @media (max-width: 768px) { .sidebar { display: none; } }
  • 点击按钮时给 body 加 sidebar-open 类,用 position: fixed 覆盖层展示
  • 此时 flex 布局退化为主内容区占满全屏,逻辑更清晰


# css  # js  # overflow  # auto  # class 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 网络优化76771 】 【 技术知识130152 】 【 IDC云计算60162 】 【 营销推广131313 】 【 AI优化88182 】 【 百度推广37138 】 【 网站推荐60173 】 【 精选阅读31334


相关推荐: Go 中的 := 运算符:类型推导机制与使用边界详解  Win11输入法切换快捷键怎么改_Windows 11自定义语言切换键位【教程】  Win11怎么关闭系统推荐内容_Windows11开始菜单布局设置  php下载安装选zip还是msi格式_两种安装包对比【教程】  Win11怎样安装搜狗输入法_Win11安装搜狗输入法教程【步骤】  Python类装饰器使用_元编程解析【教程】  php报错怎么查看_定位PHP致命错误与警告的方法【教程】  Win11怎么退出微软账户_切换Win11为本地账户登录方法【详解】  Win11怎么设置指纹解锁 Win11笔记本录入指纹登录【教程】  如何在Golang中实现服务熔断与限流_Golang微服务容错与流控方法  Win11如何设置计划任务 Win11定时执行程序教程【详解】  如何使用Golang实现容器安全扫描_Golang Docker镜像漏洞检测方法  如何解决同一段404代码在不同主机上表现不一致的问题  Win11怎么关闭通知消息_屏蔽Windows 11右下角弹窗通知设置【详解】  Win11怎么更改任务栏位置_修改注册表将Win11任务栏置顶【教程】  全球各国上班时间表外贸邮件时间  Win11怎么硬盘分区 Win11新建磁盘分区详细教程【步骤】  Win10怎样卸载自带Edge_Win10卸载Edge浏览器步骤【教程】  Win11怎么开启自动HDR画质_Windows11显示设置HDR选项  如何解决Windows时间不准的问题?(自动同步设置)  C#如何使用Channel C#通道实现异步通信  PHP接收参数值为空怎么办_判断和处理空参数方法说明【说明】  Windows服务持续崩溃怎样修复_系统服务保护机制解析  c++ reinterpret_cast怎么用 c++最危险的类型转换【详解】  Python安全爬虫设计_IP代理池与验证码识别策略解析  php打包exe如何加密代码_防反编译保护方法【技巧】  Win11怎么自动隐藏任务栏_Win11全屏显示设置【美化】  Win11怎么关闭搜索历史 Win11清除搜索框最近记录【隐私】  如何使用Golang构建简易投票统计功能_Golang投票数据汇总与展示示例  php订单日志怎么按金额排序_php按订单金额排序日志方法【方法】  WindowsUSB驱动安装异常怎么办_USB驱动重建与恢复教程  LINUX的SELinux是什么_详解LINUX强制访问控制系统的入门与配置  如何在 Go 中创建包含 map 的 slice(嵌套数据结构)  Win11怎么设置夜间模式_Windows11显示设置蓝光过滤强度  如何在 Go 中创建包含映射(map)的切片(slice)结构  Linux如何安装Golang环境_Linux下Go语言开发包配置【方法】  php怎么连接数据库_MySQL数据库连接的基础代码编写【说明】  如何在Golang中处理模块包路径变化_Golang包重命名与导入方法  如何开启Windows的远程服务器管理工具(RSAT)?(管理服务器)  Win10怎么卸载剪映_Win10彻底卸载剪映方法【步骤】  php中$this和::能混用吗_对象与静态作用域冲突解决【方法】  Win11怎么设置开机自动连接宽带_Windows11创建拨号连接计划任务  Win11怎么关闭透明效果_Windows11个性化颜色关闭透明  Win11怎么快速锁屏_Win11一键锁屏快捷键Win+L【基础】  Windows Defender扫描失败怎么办_安全模块损坏修复方式  获取 PHP 文件最后修改时间的正确方法  Windows10如何删除Windows.old_Win10磁盘清理系统文件选项  Win11关机快捷键是什么_Win11快速关机方法【大全】  如何在Golang中处理模块冲突_解决依赖版本不兼容问题  PHP怎么接收URL中的锚点参数_获取#后面参数值的技巧【详解】 

 2025-12-29

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

致胜网络推广营销网


致胜网络推广营销网

致胜网络推广营销网专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。

 915688610

 17370845950

 915688610@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.