SQL编辑器颜色不随主题变化,必须单独修改codemirror.css;其样式独立于theme.css,需重点调整.CodeMirror、.cm-keyword等选择器,并加!important确保生效。
SQL编辑器颜色不随主题变化?必须单独改 codemirror.css
phpmyadmin 的 sql 编辑器用的是 codemirror,它的样式完全独立于 theme.css。改了顶部栏颜色、按钮色,编辑框还是刺眼的蓝底白字——这是最常被忽略的点。
真正起作用的是:themes/darkblue/css/codemirror.css(路径以你当前启用的主题为准)。重点改这几个选择器:
-
.CodeMirror:整体背景色,比如设为#1e293b(深灰蓝) -
.CodeMirror-line:单行背景,建议和上层一致或略浅 -
.cm-keyword:SELECT/INSERT/UPDATE 等关键字,可设为#60a5fa(柔和蓝) -
.cm-string:字符串,推荐#86efac(青绿)减轻眼部压力 -
.cm-comment:注释,用#94a3b8(中灰)避免过亮
改完必须清空浏览器缓存(Ctrl+F5),否则旧 CSS 仍会加载。
为什么改了 $cfg['DarkMode'] = true 却没变绿?检查主题兼容性
$cfg['DarkMode'] = true 只对官方 pmahomme 主题生效。如果你启用了自定义主题(比如 darkblue 或第三方包),它大概率没实现 --dark-bg、--dark-text 这类 CSS 变量,结果就是 body 上加了 dark-mode class,但所有颜色值仍是空的。
验证方法:打开开发者工具 → Elements → 查看 <body> 是否有 dark-mode class;再查 computed styles 里 background-color 是否真变了。
立即学习“PHP免费学习笔记(深入)”;
安全做法是删掉 $cfg['ThemeDefault'] 行,让 phpMyAdmin 回退到默认 pmahomme,再配 $cfg['DarkMode'] = true。
想把 SQL 编辑器背景调成护眼绿色?别只改 body
很多人搜“SQL编辑器背景绿色”,直接在 theme.css 里写 body { background: #008000 } —— 这根本无效。SQL 编辑器是 iframe 或绝对定位的 .CodeMirror 容器,body 背景被完全遮盖。
正确位置只有两个:
-
.CodeMirror:控制编辑区整体背景 -
.CodeMirror-scroll:控制滚动区域(有时需额外设)
例如设护眼绿背景:
/* themes/darkblue/css/codemirror.css */
.CodeMirror {
background-color: #f0fdf4 !important;
}
.CodeMirror-scroll {
background-color: #f0fdf4 !important;
}注意加 !important,因为 CodeMirror 内联样式优先级高。
PHP 8.2+ 下 theme.json 缺字段会报错,别漏填 name 和 version
PHP 8.2+ 环境下,phpMyAdmin 加载主题时会严格校验 theme.json。如果复制主题后只改了 css/theme.css,忘了补全 "name" 和 "version" 字段,页面直接报 Undefined array key "name",连登录页都出不来。
最小可用 theme.json 必须含:
{
"name": "darkblue-soft",
"version": "5.2.1-20260617",
"compat_version": "5.2"
}name 必须唯一且小写;version 建议带日期,防浏览器缓存旧 CSS;compat_version 必须写成 "5.2",不能是 "5" 或 "5.2.1"。
配色这事,最难的不是找到哪几行 CSS,而是让每处颜色变更都落到实际渲染的 DOM 节点上,而不是被更高优先级规则压住或压根没加载。



















