phpMyAdmin 无法通过 config.inc.php 配置隐藏左侧导航栏,因其由前端 JS 动态注入;推荐用 CSS 缩窄至 48px 并结合 localStorage 持久化,既保留功能又节省空间;强行移除 DOM 会破坏数据库切换、表操作等核心功能。
无法真正“隐藏”左侧导航面板,但可以把它缩成窄条或彻底移除 dom —— 后者需改 js,且会破坏部分功能。
为什么 config.inc.php 里找不到 $cfg['ShowNavigation'] 这类配置
phpMyAdmin 没有提供开关来禁用左侧导航栏。所有尝试在 config.inc.php 中设置类似 $cfg['LeftDisplay'] = false 或 $cfg['NavigationTreeEnable'] = 0 的写法,都会被忽略。该区域由前端 JS 动态注入,后端只负责输出初始 HTML 骨架,不控制显隐逻辑。
- 左侧导航容器是
<div id="serverinfo">下的<div class="navigation">(5.x)或<div id="left_panel">(4.x),它始终存在 -
$cfg['NavigationTreeEnableGrouping']控制分组,$cfg['NavigationTreeDefaultTabDatabase']控制默认选中标签页,都不影响显示/隐藏 - 试图用
display: none直接藏掉整个#left_panel,会导致中间主区错位、SQL 查询框失焦、表结构加载异常等问题
安全缩窄左侧导航:用 CSS 变量 + localStorage 持久化
这是最稳妥的“视觉隐藏”方式:保留导航功能,但把宽度压到最小(如 48px),仅留图标和数据库首字母,适合大屏多窗口场景。
- 编辑你当前主题的 CSS 文件(例如
./themes/pmahomme/css/theme.css) - 在末尾添加以下规则(注意不要加
!important,否则拖拽调整会失效):/* 缩窄导航栏,保留可交互性 */ .navigation { width: 48px !important; } .navigation .block_title, .navigation .block_content { overflow: hidden; text-overflow: clip; } .navigation .block_title span, .navigation .block_content * { display: none; } .navigation .block_title::before { content: attr(data-db-short); } - 确保已启用
$cfg['EnableBundledScripts'] = false;,否则你的 CSS 不会生效 - 若希望拖拽后宽度能记住,需确认
js/navigation.js中有读取localStorage.getItem('navWidth')并应用的逻辑;没有的话,手动加一句document.documentElement.style.setProperty('--nav-width', localStorage.getItem('navWidth') || '220px');,再在 CSS 里用width: var(--nav-width);
强制移除左侧 DOM:改 navigation.js(不推荐)
如果你确定不需要数据库切换、表树展开、快速跳转等依赖左侧的功能,可直接删掉导航容器。但这属于侵入式修改,升级 phpMyAdmin 时必然丢失。
- 备份原始
js/navigation.js - 搜索
$('#serverinfo').prepend(或$('.navigation').remove()类似插入逻辑 - 在
$(document).ready()最后追加:$('#left_panel, .navigation').remove(); $('#main_pane').css('margin-left', '0'); - 注意:移除后
CREATE TABLE页面的“添加字段”按钮可能错位,SQL标签页的自动补全下拉框会出现在屏幕左上角,导入页面的文件选择器也可能定位异常
真正难的不是删掉它,而是删掉之后你还想正常点开某张表、执行某条语句、甚至只是切个数据库——这些操作都暗地里依赖左侧 DOM 提供的 data 属性、事件委托和状态标记。别省那几像素,缩窄比移除更可持续。
立即学习“PHP免费学习笔记(深入)”;



















