根因是css高度继承链断裂导致.navigation容器可用高度不足,overflow-y:auto失效;须设html,body为100dvh,#serverinfo为flex column,.navigation为flex:0 0 auto+height:100%+overflow-y:auto。
phpmyadmin左侧导航栏滚动失效的根因是什么
不是js没加载,也不是浏览器兼容问题,而是css高度继承链断裂导致 .navigation 容器实际可用高度不足,overflow-y: auto 失效——滚动条要么不出现,要么只覆盖顶部几项,底部数据库列表(如“information_schema”)永远被截断。
必须改的三处CSS高度控制点
phpMyAdmin 5.x 的左侧栏依赖 .navigation 和其父容器(通常是 #serverinfo 或 .container)共同构成高度上下文。默认情况下,它们未显式承接视口高度:
-
html, body必须设为height: 100dvh(不是100vh),避免 iOS Safari 地址栏收缩/展开时高度跳变 -
#serverinfo或外层.container需设display: flex; flex-direction: column;,并让.navigation成为其弹性子项 -
.navigation本身要加flex: 0 0 auto; height: 100%; overflow-y: auto;——flex: 0 0 auto防止被拉伸压缩,height: 100%才能继承父容器分配的高度
为什么直接写 .navigation { height: 500px; overflow-y: auto; } 会失败
硬编码像素高度在不同屏幕、缩放比、字体设置下极易错位;更重要的是,phpMyAdmin 的 JS 拖拽逻辑(调整侧边栏宽度)会动态写 style.width,若同时存在内联 height 和 flex 布局冲突,浏览器会优先服从 flex 计算规则,导致你写的 height 被忽略。
更稳妥的做法是用 CSS 自定义属性配合 JS:
在 custom.css 中加:.navigation { flex: 0 0 auto; height: 100%; overflow-y: auto; }
在 JS 中(如通过 console 注入或修改 phpmyadmin/js/navigation.js)确保 DOM 加载后执行:document.querySelector(".navigation").style.height = "100%";
移动端滚动失效要额外处理
小屏下 .navigation 常被 .navbar 或顶部工具栏挤压,导致可滚动区域进一步缩水。除了上述高度链修复,还需在 @media (max-width: 768px) 中补一条:
.navigation { max-height: calc(100dvh - 80px); overflow-y: auto; } —— 这里的 80px 是预估 header + toolbar 高度,可根据实际 DOM 结构用 DevTools 测量后微调
别忘了清缓存:改完 CSS 后,强制刷新(Ctrl+F5 或 Cmd+Shift+R),并清空浏览器的 Cache Storage 和 localStorage,否则旧样式可能仍被复用
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











