直接原因是新主题CSS与phpMyAdmin 5.1的DOM结构及JS初始化逻辑不匹配,主要表现为.tablinks、#serverlinks、.sqlquery三处样式被覆盖或未重置,JS因节点缺失或引用丢失而失效,以及rem单位导致字体尺寸错乱,还需清除tmp缓存才能生效。
直接原因不是主题本身有问题,而是新主题的 css 与 phpmyadmin 5.1 的 dom 结构或 js 初始化逻辑不匹配——尤其是顶部页签(.tablinks)、左侧导航树(#serverlinks)和 sql 输入框(.sqlquery)这三处容器的样式被覆盖或未重置。
主题 CSS 覆盖了关键布局类,且未做结构兼容性处理
phpMyAdmin 5.1 的 HTML 结构是固定且较老的:顶部用 <ul class="tablinks"></ul> 做横向页签,左侧用 <div id="serverlinks"> 浮动布局,SQL 区域依赖 <code>.sqlquery textarea 的硬编码高度。很多第三方主题直接重写 .tablinks 为 flex 或 grid,却没处理 li 子项的 float: left 清除,导致页签换行错位;或把 #serverlinks 设为 display: block 但没配 width: 200px,造成左侧菜单塌陷。
实操建议:
- 打开浏览器 DevTools,检查错乱区域的 computed styles,重点看
tablinks、serverlinks、sqlquery是否被新主题 CSS 意外修改 - 在新主题 CSS 文件开头加强制重置规则:
.tablinks { display: inline-block !important; }<br>.tablinks li { float: left !important; margin-right: 2px !important; }<br>#serverlinks { width: 200px !important; float: left !important; } - 避免使用
all: unset或* { box-sizing: border-box }全局重置——phpMyAdmin 5.1 大量依赖默认 box-sizing 和 margin 行为
JS 初始化失败,导致折叠/响应式逻辑未触发
部分主题依赖 phpMyAdmin 自带的 navigation.js 或 common.js 来动态计算宽度、展开子菜单、切换页签。但 5.1 的 JS 是按旧 DOM 绑定的,比如它找 document.getElementById('serverlinks') 后直接操作 style.width;如果新主题把 #serverlinks 包进另一个 <div> 或改了 ID,JS 就找不到节点,整个左侧导航变成静态块,宽度失控。<p>常见现象:</p>
<p><span>立即学习</span>“<a href="https://pan.quark.cn/s/7fc7563c4182" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">PHP免费学习笔记(深入)</a>”;</p>
<ul>
<li>左侧数据库列表不随窗口缩放收缩/展开</li>
<li>点击「结构」「SQL」页签后内容区空白或错位</li>
<li>鼠标悬停无高亮,<code>:hover 样式不生效(JS 未注入事件监听)
解决方法:
- 确认新主题是否删掉了
<script src="js/navigation.js"></script>或类似引用;若删了,手动补回(路径通常为js/navigation.js) - 检查主题
index.php或模板文件里有没有误删<div id="serverlinks"> 的原始 wrapper,必须保留该 ID 且不能嵌套过深<li>禁用主题自带的 JS 优化脚本(如 lazyload、modernizer),它们常提前执行并干扰 phpMyAdmin 的 DOM 就绪判断</li> <h3>字体与尺寸单位混用,高 DPI 下加剧错位</h3> <p>phpMyAdmin 5.1 默认 CSS 全用 <code>px,而不少新主题为了“现代感”改用rem或em,但没同步调整根元素font-size。结果是按钮文字变小、行高压缩、textarea高度不足——尤其在 Windows 125% 缩放下,1rem被解析为 16px × 1.25 = 20px,但 phpMyAdmin 原逻辑期望 24px 行高来对齐图标。快速验证:
- 在 Chrome DevTools 中选中一个错位按钮,看
Computed标签页里的font-size和line-height实际值是否偏离预期(如line-height: 1.2在 13px 字体下仅得 15.6px,远低于原设计的 24px) - 临时在浏览器控制台执行:
document.documentElement.style.fontSize = '16px',若排版立刻恢复,说明就是 rem 基准错乱
修复建议:
- 在新主题 CSS 开头加:
html { font-size: 16px !important; }<br>.tablinks a, .serverlink, .sqlquery textarea { font-size: 13px !important; line-height: 24px !important; } - 避免用
vw或%设置关键容器宽度(如.nav-panel),phpMyAdmin 5.1 的 JS 宽度计算依赖固定像素值
最易被忽略的一点:主题启用后,phpMyAdmin 的模板缓存(
tmp/目录下文件)仍会加载旧 HTML 结构,即使你改了 CSS 也看不到效果。必须清空tmp/并重启 PHP-FPM,否则所有样式调试都是徒劳。 - 在 Chrome DevTools 中选中一个错位按钮,看



















