如何调整phpMyAdmin表格行高

作者:袖梨 2026-08-31

直接改CSS是唯一可靠方式,phpMyAdmin无界面开关或配置项可调表格行高;必须通过自定义主题修改table.data tbody tr的height、td/th的padding和font-size,避免升级覆盖与缓存失效。

直接改 CSS 是唯一可靠方式

phpMyAdmin 没有界面开关或配置项能调表格行高,$cfg 数组里也不存在类似 row_height 这样的选项。所有“设置行高”的尝试若不落脚到 CSS,最终都会失效——尤其是升级后。

新版(5.2+)强制校验主题完整性,直接改 themes/pmahomme/css/common.css 会被覆盖;浏览器缓存、Twig 编译缓存、压缩 CSS(./js/dist/theme.min.css)也会让你改了没反应。

  1. 必须走自定义主题路径:在 themes/custom/mytheme/ 下复制完整 pmahomme 结构再修改
  2. 关键选择器是 table.data tbody tr(控制行高)、table.data td, table.data th(控制内边距和字体)
  3. 不要碰 thead 行高,24px 已是下限,再低会截断排序箭头

行高值设多少才合适

设太小(比如 16px)会导致中文模糊、复选框错位、鼠标悬停反馈弱;设太大(比如 40px)又浪费垂直空间,尤其在小屏或高分辨率显示器上。

实测平衡点是:height: 24px 配合 padding: 4px 8pxfont-size: 12px。这个组合在 1080p 屏幕上每屏能多显示 3–5 行数据,且保持可读性。

  1. height 设固定值,不是 min-height —— 表格行高必须刚性控制,否则内容撑开后反而更难预测
  2. padding 缩小比单纯缩 height 更安全,避免文字贴边或点击区域过小
  3. 字体别低于 12px,否则中文宋体/微软雅黑会发虚,尤其在非 retina 屏上

为什么只改 tr:hover 不起作用

很多人以为“鼠标悬停变色”就是“选中行”,于是只改 tr:hover,结果点击复选框后背景色不变——因为 phpMyAdmin 的“已选中”状态由 .marked 类控制,不是伪类。

真正要覆盖的样式是:

.marked { background-color: #e3f2fd !important; }table.data tbody tr { height: 24px; }table.data td, table.data th { padding: 4px 8px; font-size: 12px; }
  1. .marked 是点击行首复选框、全选、Ctrl+Click 的唯一稳定标识符
  2. tr:hover 只影响悬停态,且新版可能叠加 .hover 类,优先级混乱
  3. 如果用了暗色模式,还得额外加 body.darkmode .marked 规则,否则高亮失效

分页后新加载的行不生效怎么办

用 Stylus 插件或直接注入 CSS 时,AJAX 分页加载的新 tbody 内容不会自动套用样式——因为它们是 JS 动态插入的,原 CSS 规则已解析完毕。

解决方案只有两个:

  1. Stylus 用户开启「Live Preview」开关,它会监听 DOM 变化并重应用规则
  2. 手动刷新页面(最简单),或用 Tampermonkey 注入 MutationObserver 监听 #table_results tbody 变化
  3. 别用 :contains() 匹配关键词后加背景色——分页后新行不触发,除非你写循环重扫

真正稳定的行高控制,只发生在初始 HTML 渲染阶段;后续动态更新只能靠 JS 补救,但那已经不属于“调整行高”的原始需求了。

相关文章

精彩推荐