首页/新闻资讯/正文详情

Adminer adminer-border 设计详解:恢复行复选框与重复操作链接单元格的边框与背景

发布时间:2026/9/27 21:45:16 来源:云帆数科 栏目:资讯中心
Adminer adminer-border 设计详解:恢复行复选框与重复操作链接单元格的边框与背景
数据库数据库客户端后端【免费下载链接】adminerDatabase management in a single PHP file项目地址https://gitcode.com/gh_mirrors/ad/adminer点击查看免费下载本指南以 Adminer 官方设计目录中的 adminer-border 说明文档 为核心结合 adminer-border/adminer.css 的完整实现与 default.css、design.inc.php 等底层源码讲解该设计解决的问题、逐条规则的含义、安装方式与版本校验机制。读完本文你将理解 Adminer 6.0.0 前后表格 hover 单元格外观差异的来龙去脉并掌握如何在自己的 Adminer 部署中启用、验证乃至仿写这类「仅做局部修补、不改配色」的轻量设计。一、这个设计解决什么问题adminer-border是一个只包含 16 行 CSS 的官方设计其核心作用是把表格中承载「重复出现的操作链接」和「行复选框」的单元格即td.hover重新放回表格内——让它们与普通单元格拥有相同的边框和背景而不是看起来像悬在表格外部。按照 designs/adminer-border/README.md 的说明该设计不改变任何颜色浅色light与深色dark两种配色模式都继续沿用 Adminer 内置的默认配色它只是把边框宽度与背景重新对齐到相邻单元格。README 还明确提到这就是 Adminer 6.0.0 之前管理界面的默认外观。换句话说adminer-border是一个「怀旧/还原型」设计——它不是换肤而是把 Adminer 6.0.0 引入的视觉改版中一处容易引起困惑的细节恢复成旧版观感。二、为什么需要它6.0.0 之后 hover 单元格「游离于表格之外」要理解adminer-border的价值先要明白默认主题default.css在 6.0.0 之后做了什么。默认样式中针对.hover单元格的规则位于 adminer/static/default.csstbody tr:hover td, tbody tr:hover th { background: var(--dim); } td.hover, tr:hover td.hover, .js .checkable .checked td.hover { background-color: var(--bg); border-bottom-width: 0; } td.hover:first-child { border-inline-start-width: 0; } td.hover:last-child { border-inline-end-width: 0; } table :first-child :first-child td.hover { border-top-width: 0; }对比同一文件中普通单元格的边框定义default.csstd, th { border-width: 0; border-block-end-width: 1px; border-inline-end-width: 1px; padding: .2em .3em; margin: 0; } td:first-child, th:first-child { border-inline-start-width: 1px; } table :first-child :first-child td, table :first-child :first-child th { border-top-width: 1px; }可以清晰看到新默认主题对.hover单元格的四条边框宽度全部清零border-bottom-width: 0、border-inline-start-width: 0、border-inline-end-width: 0、border-top-width: 0并赋予background-color: var(--bg)页面底色。于是这些单元格看起来不再被表格边框包围如同「贴在表格外面的独立元素」——这正是adminer-border要修复的现象。.hover单元格在源码中的真实用途td.hover并不是抽象概念它在 Adminer 的多处界面中实际承担交互职责db.inc.php数据库列表页的「全选」复选框与每行的表/视图复选框select.inc.php数据浏览页的行级复选框带sticky定位processlist.inc.php进程列表的 kill 复选框privileges.inc.php用户权限列表的 Edit 链接adminer.inc.phpSQL 历史等处的 Edit 链接以及左侧导航中的选中项。这些单元格共同点在于它们是「每行重复出现」的操作入口链接或勾选框。新版默认主题刻意弱化其边框感而adminer-border则把它们重新「画回」表格栅格之中。三、adminer-border 的完整实现逐条解析设计主体是单文件 designs/adminer-border/adminer.css全文如下含文件头注释/* Adminer design adminer-border */ /* Restore the border and background of the cells with the repeated links and row checkboxes. */ td.hover, tr:hover td.hover, .js .checkable .checked td.hover { border-bottom-width: 1px; } td.hover:first-child { border-inline-start-width: 1px; } td.hover:last-child { border-inline-end-width: 1px; } table :first-child :first-child td.hover { border-top-width: 1px; } tbody td.hover { background-color: transparent; } thead td.hover, thead tr:hover td.hover { background-color: var(--lit); } tbody tr:hover td.hover { background-color: var(--dim); } .js .checkable .checked td.hover { background-color: var(--lit); } media (prefers-color-scheme: dark) { tbody tr:hover td.hover { background-color: #133553; } .js .checkable .checked td.hover { background-color: #1a5178; } .js .checkable .checked:hover td.hover { background-color: #15486c; } }下面逐组说明。1. 边框恢复前 4 条规则td.hover, tr:hover td.hover, .js .checkable .checked td.hover { border-bottom-width: 1px; } td.hover:first-child { border-inline-start-width: 1px; } td.hover:last-child { border-inline-end-width: 1px; } table :first-child :first-child td.hover { border-top-width: 1px; }这四条与默认主题中清空边框的四条规则一一对应把边框宽度从0恢复为1px第一条覆盖td.hover的三种状态——静态、整行悬停tr:hover td.hover、以及 JavaScript 勾选后.js .checkable .checked td.hover统一恢复下边框。第二、三条td.hover:first-child/:last-child恢复表格第一列/最后一列的左右边框。这里使用border-inline-start-width/border-inline-end-width逻辑属性而非border-left/right与默认主题的注释「logical so that the borders mirror in right-to-left languages」一致保证在阿拉伯语等 RTL 界面中边框也能正确镜像。第四条table :first-child :first-child td.hover选择器命中表格首行的首个分区如thead或tbody中的 hover 单元格恢复顶边框——与默认主题普通单元格的顶边框规则default.css完全对称。2. 背景恢复浅色模式后 4 条规则tbody td.hover { background-color: transparent; } thead td.hover, thead tr:hover td.hover { background-color: var(--lit); } tbody tr:hover td.hover { background-color: var(--dim); } .js .checkable .checked td.hover { background-color: var(--lit); }第一条是「地基」把tbody内 hover 单元格的背景设为transparent这样它们就能自然透出行级悬停tbody tr:hover td { background: var(--dim); }和勾选态的背景无需逐个硬编码颜色第二条表头thead中的 hover 单元格使用var(--lit)与默认主题中表头单元格的背景thead td, thead th { background: var(--lit); }见 default.css保持一致第三条行悬停时使用var(--dim)正是默认主题中普通单元格悬停时的背景色default.css第四条勾选态.js .checkable .checked使用var(--lit)对应默认主题对勾选行的整体处理.js .checkable .checked td { background: var(--lit); }见 default.css。可以看到浅色模式完全没有引入新颜色全部复用默认主题的 CSS 变量。默认主题通过 default.css 的:root定义了--bg: #fff、--dim: #eee、--lit: #ddfadminer-border 只是把这些变量「搬运」到 hover 单元格上。3. 深色模式media query 内的三处覆盖media (prefers-color-scheme: dark) { tbody tr:hover td.hover { background-color: #133553; } .js .checkable .checked td.hover { background-color: #1a5178; } .js .checkable .checked:hover td.hover { background-color: #15486c; } }深色模式通过media (prefers-color-scheme: dark)触发使用三个硬编码色值。将它们与内置深色主题 dark.css 对照可以发现这组颜色正是深色主题的悬停/勾选色系#133553对应 dark.css 中tbody tr:hover td { background: #133553; }dark.css#15486c对应 dark.css 中勾选行再悬停的#15486cdark.css#1a5178用于勾选态 hover 单元格是同一蓝色系中稍亮的一档。也就是说深色模式下这些单元格同样遵循「与周围单元格同一套背景色」的还原原则只是深色主题的变量值--bg: #002240、--dim: #0f3457、--lit: #011d35见 dark.css在语义上与浅色不同因此设计在 media query 中显式写出等价色值而非复用变量。四、如何安装与启用按照 designs/README.md 的通用安装约定将 designs/adminer-border/adminer.css 复制到 Adminer PHP 脚本index.php或编译后的adminer.php同一目录并重命名为adminer.css刷新页面后Adminer 即会自动加载该样式无需改动任何 PHP 配置。该文档同时说明了设计文件命名与模式的约定adminer-border恰好是其中最典型的一种同时支持浅色与深色模式的设计全部写在adminer.css中深色部分放在media (prefers-color-scheme: dark)内——adminer-border正是这样组织的仅支持深色模式的设计应命名为adminer-dark.css每个设计文件必须以/* Adminer design name */注释开头且name必须与所在目录名一致此处即adminer-border。adminer-border属于「单文件同时覆盖双模式」的情形Adminer 会把它作为无模式标记mode 为空的样式无条件加载浅色部分直接生效深色部分交给文件内的 media query 自行切换。五、如何确认设计已生效标记注释与 crc32 校验Adminer 并不是盲目加载任意 CSS 文件它会校验设计的「身份」与「版本匹配」。相关逻辑集中在 adminer/include/design.inc.phpdesign_checksums()design.inc.php检查脚本同目录下是否存在adminer.css/adminer-dark.css用正则~^/\* Adminer design ([-\w]) \*/~读取文件第一行注释中的设计名并计算 crc32 校验和Plugins::checksum()忽略行尾与翻译差异见 plugins.inc.phpofficial_design_checksums()design.inc.php通过glob(../designs/*/*.css)扫描本仓库 designs 目录下所有官方设计同样读取标记注释并计算校验和在 connect.inc.php 的数据库选择页底部会以「Loaded plugins」列表的形式列出当前加载的设计名与文件名若该设计是官方设计但校验和与当前 Adminer 版本不一致还会附上更新提示链接。这套机制保证了即使你从旧版本复制了一份adminer.css过来Adminer 也能识别出它是否与当前版本配套而不是静默地加载一份过时的样式。对adminer-border而言只要你的adminer.css首行是/* Adminer design adminer-border */且内容与官方文件一致页面底部的列表就会显示adminer.css: adminer-border。另外designs/README.md 末尾还提到 plugins/designs.php需要以插件方式引入设计时可以参考该文件。六、小结与扩展思路adminer-border是一个教科书级的「最小干预」设计案例单一职责只恢复td.hover单元格的边框与背景不碰任何其他样式零配色侵入浅色模式完全复用默认主题的--bg/--dim/--lit变量深色模式复用内置深色主题的悬停色值与官方 README 中「Colors are not changed」的描述完全吻合实现对称它的每一条规则都能在 default.css 中找到对应的「清零」规则四条边框逐一还原、三种状态静态/行悬停/勾选逐一覆盖历史价值README 明确指出它是 Adminer 6.0.0 之前的默认外观因此对希望保持旧版表格观感或刚升级到 6.x 的用户这是最直接、成本最低的视觉回归方案。如果你正在自研 Adminer 设计adminer-border的写法也提供了一个可复用的范式通过var(--...)变量引用内置配色、用media (prefers-color-scheme: dark)处理深色模式、以/* Adminer design name */标记注释配合 crc32 校验融入 Adminer 的设计加载与版本检测体系即可写出同样轻量、可维护且可被 Adminer 正确识别的主题文件。赞分享数据库数据库客户端后端【免费下载链接】adminerDatabase management in a single PHP file项目地址https://gitcode.com/gh_mirrors/ad/adminer点击查看免费下载相关推荐Textual 样式详解border-title-background 边框标题背景色Textual 样式详解border title background 边框标题背景色 border title background 是 Textual 框前端UI组件异步编程Voyager Checkbox 表单字段详解单复选框、多复选框与单选按钮的 JSON 配置与底层渲染原理Voyager Checkbox 表单字段详解单复选框、多复选框与单选按钮的 JSON 配置与底层渲染原理 在 VoyagerThe Missing Lar后端CMS上一篇gs-quant FXBinary 实战指南从最小参数到外汇二元期权完整定价下一篇如何轻松获取国家中小学智慧教育平台电子课本这个开源工具给你答案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

基于php的动漫插画分享网站-附源码
基于php的动漫插画分享网站-附源码

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台… · 2026/9/27 21:45:09

基于PHP的减脂轻食购物网站-附源码
基于PHP的减脂轻食购物网站-附源码

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台… · 2026/9/27 21:45:09

一个人,3天,我用MCP做了个AI旅游规划产品并上线
一个人,3天,我用MCP做了个AI旅游规划产品并上线

一个人,3天,我用MCP做了个AI旅游规划产品并上线 上个月有个疯狂的想法:能不能一个人,用MCP快速拼出一个AI旅游规划产品?说干就干。3天时间,从0到上线,还真做出来了。首月跑了快2000个用户&… · 2026/9/27 21:45:03

搞懂wordpress顶部是什么及性能优化避坑指南
搞懂wordpress顶部是什么及性能优化避坑指南

搞懂wordpress顶部是什么及性能优化避坑指南 域名解析不通,服务器报错502,这是无数新手站长深夜崩溃的真实写照。你明明买好了空间,上传了文件,为什么浏览器打开就是一堆乱码或者空白页?很多时候,问题不出在代码逻辑,而出在你没搞懂… · 2026/9/27 22:58:02

物理AI落地:嵌入式AI 硬件与 WorkBuddy 智能体生态的接入路径
物理AI落地:嵌入式AI 硬件与 WorkBuddy 智能体生态的接入路径

【摘要】 物理AI(Physical AI)指把大模型与智能体(Agent)能力装进具备"感知—决策—执行"闭环的嵌入式硬件系统。2026 年,端侧模组成本降至百元级、Agent 开放平台成熟,个人开发者已具备完整的硬… · 2026/9/27 22:57:56

夫妻的术语大全的庖丁解牛
夫妻的术语大全的庖丁解牛

总纲:夫妻,是经由婚姻契约、自愿结伴,两个独立成年人组成的双向协作亲密系统。两个人保留各自独立人格,共同搭建家庭、共担风险、共享生活,不是一方依附另一方。 很多夫妻矛盾根源,是把夫妻理解成“我需要对… · 2026/9/27 22:57:49

表的增删查改
表的增删查改

bit::Shadow✧(≖ ◡ ≖✿ 目录 什么算“冲突” 1.增 1.1insert 与 on duplicate key duplicate key 1.2replace 2.查 2.1distinct 2.2where 2.2.1运算符 比较运算符 逻辑运算符 2.2.2 like 2.2.3 desc 与 asc 2.2.4 limit 3.改 4.删 4.1delete 4.2 truncate… · 2026/9/27 22:57:49

6篇文章讲清楚Git:Git 分支与合并:一次讲清 HEAD、merge 和 rebase (2/6)
6篇文章讲清楚Git:Git 分支与合并:一次讲清 HEAD、merge 和 rebase (2/6)

上一篇我们把提交讲成了一串用 parent 指针串起来的快照链,但那只是一条线,实际开发中我们不可能大家都在一条线上改代码,所以这就引出了分支。 分支就是一个指针 理解分支最重要的一句话是:分支什么都没多存,它就是一… · 2026/9/27 22:57:49

跟着鹏哥学习C语言-------写第一篇博客
跟着鹏哥学习C语言-------写第一篇博客

一 介绍 我是一名大一新生,一直以来对计算机技术都很感兴趣。之前零散接触过一点编程,但总觉得不够,所以决定从现在开始认真走这条路。二 目标关于学习编程的目标,目前给自己定得很明确:第一步就是学会C语… · 2026/9/27 22:57:49

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码