自定义主题必须放在 ./themes/custom/ 目录下,通过 config.inc.php 启用 thememanager 并指定 themepath 和 themedefault,同时需正确配置 theme.json 的 name 和 version 字段,覆盖登录页背景与 logo 需单独处理,codemirror 样式须独立修改。

主题文件必须放 ./themes/custom/ 下,不能动 pmahomme
phpMyAdmin 5.2+ 的主题机制不认你直接改 themes/pmahomme/ 里的 CSS —— 升级 XAMPP 或 phpMyAdmin 时,整个 pmahomme 目录会被覆盖,你的圆角、阴影、按钮色全丢。真正生效的路径是:XAMPP\phpMyAdmin\themes\custom\mytheme(目录名任意,但必须在 custom/ 下)。操作步骤:
- 在
XAMPP\phpMyAdmin\themes\下新建custom文件夹 - 把完整的
pmahomme目录复制进custom/,重命名为mytheme - 确保
mytheme/css/common.css和mytheme/css/components.css可编辑 - 别漏掉
mytheme/theme.json:里面的"name"字段必须和目录名一致(如"name": "mytheme"),"version"建议每次修改后加个补丁号(如"1.0.1"),否则浏览器可能缓存旧 CSS
config.inc.php 必须显式启用主题,路径不能写错
只放对文件还不够,phpMyAdmin 默认不加载自定义主题。关键三行配置要加在 config.inc.php 里(通常在 $cfg['Servers'][$i]['auth_type'] = 'cookie'; 后面):
-
$cfg['ThemeManager'] = true;—— 旧版 XAMPP 可能默认为false,不设就无效 -
$cfg['ThemePath'] = 'themes';—— 必须是相对路径,不能写./themes或绝对路径 -
$cfg['ThemeDefault'] = 'mytheme';—— 值必须和themes/custom/mytheme的目录名完全一致(大小写敏感)
改完立刻重启 Apache,再清空浏览器缓存(Ctrl+F5),否则仍走旧样式。
.btn:hover 不生效?JS 动态类权重更高
你写了 .btn:hover { background: #4a90e2; },但悬停没反应——不是代码错了,而是 phpMyAdmin 的 JS 在点击后会立即给按钮加上 .ajax 或 .disabled 类,而原始 CSS 里 .btn.ajax:hover 的选择器权重高于你的规则。
- 必须显式覆盖所有常见状态:
.btn:hover、.btn-secondary:hover、input[type="submit"]:hover、button:hover -
input[type="submit"]默认不响应:hover,得加cursor: pointer才触发 - 禁用态也要同步处理:
.btn.disabled:hover、.btn:disabled、input:disabled - 暗色模式依赖
body.darkmode类,不是@media (prefers-color-scheme: dark),否则切换后按钮还是亮色
登录页背景和 Logo 不走 CSS,得靠配置项和硬替换
登录页(index.php)压根不加载主题 CSS,所以改 common.css 里的 body { background } 没用。它靠两个独立机制:
- 登录背景:用
$cfg['LoginLogo'] = './custom/bg.svg';,图片必须放在XAMPP\phpMyAdmin\custom\下,尺寸推荐240×120px,SVG 优先;路径必须以./开头,改完要重启 Apache - 顶部 Logo:不是配项控制,是硬编码引用
themes/pmahomme/img/logo_right.png(或你当前主题名),替换时保持原文件名、PNG 格式、150×40px尺寸,否则布局错乱 - SQL 编辑框颜色独立于主题:查
themes/mytheme/css/codemirror.css和syntaxhighlighter.css,改.cm-keyword、.CodeMirror等类,不然主色调变了,关键字还是蓝的
最易被忽略的是 theme.json 的 version 字段和 CodeMirror 样式——前者影响缓存刷新,后者让“换肤”只完成一半。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











