默认“编辑/删除/查看”按钮文字占空间因phpmyadmin硬编码文字标签且无原生图标开关,须通过custom.css隐藏文字、用伪元素注入font awesome图标实现轻量定制,升级安全。

为什么默认的“编辑/删除/查看”按钮文字太占空间
phpMyAdmin 数据浏览页(tbl_select.php)默认在每行末尾显示带文字的操作按钮(如“编辑”“删除”“查看”),尤其在字段较多、列宽较窄时,文字会强制换行或挤压内容区域,影响可读性。纯图标模式能显著节省水平空间,也更符合现代管理界面习惯——但 phpMyAdmin 并未提供开关式配置项,必须通过定制 CSS + 少量 JS 触发时机干预实现。
直接修改 config.inc.php 无法生效的原因
很多人尝试在 config.inc.php 中添加类似 $cfg['ShowSQL'] = false 的配置,但 phpMyAdmin 没有 $cfg['ActionButtonsAsIcons'] 这类原生选项。所有操作按钮的 HTML 渲染由 libraries/classes/Display/Results.php 中的 getActionLinks() 方法生成,且硬编码了文字标签(如 编辑 )。因此,任何配置层面的修改都不会影响按钮结构,必须从输出层拦截或重写。
用自定义 CSS 隐藏文字、保留图标(推荐方案)
这是最轻量、升级友好、无需改源码的方法:利用 phpMyAdmin 已内置的图标(Font Awesome 或内置 SVG),仅隐藏文字部分,让图标自然撑开按钮区域。需注意两点:一是按钮容器本身有固定 padding,二是文字节点与图标节点同级,不能只靠 display: none 简单处理。
- 在 phpMyAdmin 根目录下创建
custom.css(若不存在),内容如下:
/* 隐藏操作列中所有按钮内的文字(保留图标) */
.table_results tbody tr td:last-child .ajax a,
.table_results tbody tr td:last-child .ajax button {
position: relative;
}
.table_results tbody tr td:last-child .ajax a span,
.table_results tbody tr td:last-child .ajax button span {
display: none;
}
.table_results tbody tr td:last-child .ajax a::before,
.table_results tbody tr td:last-child .ajax button::before {
font-family: "Font Awesome 5 Free";
font-weight: 900;
margin-right: 4px;
}
.table_results tbody tr td:last-child .ajax a[href*="sql.php?...edit"]::before,
.table_results tbody tr td:last-child .ajax button[data-action="edit"]::before {
content: "\f044"; /* pencil-alt */
}
.table_results tbody tr td:last-child .ajax a[href*="sql.php?...delete"]::before,
.table_results tbody tr td:last-child .ajax button[data-action="delete"]::before {
content: "\f2ed"; /* trash-alt */
}
.table_results tbody tr td:last-child .ajax a[href*="sql.php?...view"]::before,
.table_results tbody tr td:last-child .ajax button[data-action="view"]::before {
content: "\f06e"; /* eye */
}
- 然后在
config.inc.php中追加加载该样式:$cfg['Servers'][$i]['extension'] = 'mysqli';后加入:$cfg['HeaderExtraCSS'] = './custom.css'; - 确保 phpMyAdmin 版本 ≥ 5.1(Font Awesome 5 支持完整),低于此版本需改用内联 SVG 或调整字体映射
JS 动态替换按钮内容的风险点
有人用 $(document).on('pma:table-refresh', ...) 或 DOMContentLoaded 监听后用 JS 替换按钮 innerHTML,这看似灵活,但极易出问题:
- phpMyAdmin 使用 AJAX 分页和排序,按钮是动态插入的,监听时机稍有偏差就会漏处理
- 批量操作(如全选删除)依赖原始按钮上的
data-*属性,手动替换可能丢失data-rowid、data-table等关键字段 - 某些主题(如
pmahomme)按钮结构不同,JS 选择器需额外适配,维护成本陡增 - PHP 8.2+ 开启
DeprecationWarnings时,部分旧版 JS 可能触发控制台报错,干扰调试
除非你明确需要图标+tooltip 动态绑定或权限级图标切换,否则不建议走 JS 路线。
真正要注意的是:phpMyAdmin 升级后,custom.css 不会被覆盖,但 Font Awesome 图标码点可能随版本变化(比如 FA6 改用新 Unicode 区段),届时只需更新 content 值即可。别碰 libraries/ 下任何 PHP 文件——那里改一行,下次升级就白忙。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











