⚠️ 本正文是建单时的初版描述,需求方向已被用户纠正,请勿按本文的「底部等高」验收。 纠正内容见下方评论(2026-10-25): 用户原话:「不是等高,而是位置,就是说左侧和右侧距离最上面的位置,是不同的,一边高一边低」。 真问题是顶边(top)坐标不一致:左栏白卡片 top=53、右栏白卡片 top=63,差 10px。 两栏高度本来就应该不同(右面板随内容变),不是缺陷;本轮只对齐顶边,不碰底边。 本文「期望」与「验收标准」两节里关于 |左栏底 - 右面板底| ≤ 1px 的内容作废。 实际交付内容与最终验收结果,见本单最后一条评论(3.2.33)。
⚠️ 本正文是建单时的初版描述,需求方向已被用户纠正,请勿按本文的「底部等高」验收。
纠正内容见下方评论(2026-10-25):
|左栏底 - 右面板底| ≤ 1px
实际交付内容与最终验收结果,见本单最后一条评论(3.2.33)。
「主题设置」页面(≥960px 宽屏时)是左边一列竖排标签、右边一块设置面板。两栏高度不相等,底部对不齐:
于是每个标签页都会错位,且错的方向还不一样:
多数标签页(11 个里有 10 个)是「右边高、左边矮」,左栏像只用了一半就被截断了。
当前布局是 3.2.24 的 float + margin-left 方案:
float
margin-left
h2.nav-tab-wrapper { float: left; width: 190px }
#optionsframework-metabox { margin-left: 210px }
#optionsframework-wrap::after { display: table; clear: both }
浮动布局里「两栏等高」是做不到的:没有任何机制把右侧高度传给左侧,也没法让左侧反向撑高右侧。
options_framework_tabs
#optionsframework-wrap
本地几何夹具原先缺 wpColorPicker 的桩,options-custom.js 在 $('.of-color').wpColorPicker() 处抛 TypeError,导致标签切换的初始化整段没执行,量出来是「11 个分组全 display:block、面板一律 8112px」——一个看起来像"切换完全没生效"的假象。真站点该脚本的依赖是 array('jquery','wp-color-picker'),由 WordPress 提供,不存在这个问题。夹具已补桩。
wpColorPicker
options-custom.js
$('.of-color').wpColorPicker()
array('jquery','wp-color-picker')
你看过图之后明确:关键是位置 —— 左右两栏距离最上面的位置不同,一边高一边低,不是等不等高的问题。
我原来的描述抓错了重点,按你说的重新量了一遍。两栏各自的坐标(1360px 视口):
h2
h2.nav-tab-wrapper
#optionsframework-metabox
#optionsframework
两栏白卡片的顶边差 = +10px —— 左边高、右边低。
WordPress 后台自带一条样式:
#wpbody-content .metabox-holder { padding-top: 10px; }
这条是给「一路往下排的 metabox」留顶部间距用的。3.2.24 把标签列 float: left 变成两栏并排之后,这 10px 就没人跟它配对了:
float: left
两栏各自都对齐到了自己的容器顶边,但两个容器的顶边不同。
只在两栏并排时(≥960px)把那 10px 清零:
#optionsframework-wrap > #optionsframework-metabox { padding-top: 0; }
窄屏不清 —— 那里标签是横排在上一路往下,这 10px 是该留的间距。
为什么不是「给左栏补 10px padding」:那会让左栏白卡片内部多出一段看不见的空白、标签整体下移 10px,与页面标题之间出现空隙。问题只是从「两栏错位」变成「左栏内部偏下」,治标。
按你的纠正,这轮先只对齐顶边,不动底边高度(左栏 467 固定、右栏 366~1276 随标签变化)。
底边那个「左栏下方留大块灰底 / 首页配置页左栏戳出去」是另一个问题,要不要处理、怎么处理(左栏跟随拉长?面板撑高?),等你拿主意后再另开一单,不混在这一单里。
3.2.33 已发布上线,本单可以结案了。
这条需求我一开始理解错了,理解成「左右两栏高度要一样」。经你纠正,真正的问题是:
在 1360 / 1100 / 960 三个宽度下分别量,结果完全一致:
左栏卡片高度固定 467 px;右栏从 366 px(顶部导航)到 1276 px(自动目录)不等。
WordPress 后台有一条通用规则,给「一路往下竖排的 metabox」留顶部间距:
#wpbody-content .metabox-holder { padding-top: 10px }
早年这套设置页就是一路往下排的,这 10 px 正好是它和上方标题之间的空隙。
3.2.24 把标签列挪到左边、改成左右两栏并排之后,这 10 px 就没人跟它配对了:左栏不带这层间距,右栏还带着,于是右栏被压低 10 px。
两栏并排时,把这 10 px 清零:
@media screen and (min-width: 960px) { #optionsframework-wrap > #optionsframework-metabox { padding-top: 0; } }
只在宽屏(960 px 及以上、真的排成两栏的时候)清。窄屏下标签是横排在上一路往下,那 10 px 是该留的间距,不动。
没有采用「给左栏补 10 px」这种凑齐的办法。 那样两栏顶边也能对上,但左栏卡片内部会多出一段看不见的空白,标签整体下移,标签和卡片上缘之间出现空档 —— 问题只是从「两栏错位」变成「左栏里头发空」。所以走的是「把多余的那一份去掉」,不是「给另一边补一份」。
_geo333_top.py
_geo333_top_falsify.py
_pkgcheck333.py
_pkgcheck333_falsify.py
_admin330_tab_check
_admin328_check
_guard330
_toc330_logic
_test_toc
_geo330_rail
_geo331_inline
顶边实测(修前 → 修后):
此外还验了:逐个点开全部 11 个标签,切换过程中右栏顶边始终是同一个值(不会被内容推下去)。
包契约里原本写的是「整个 CSS 文件里有 float: left 就算两栏布局还在」。注入测试把左栏的 float: left 删掉之后,判据照样绿 —— 因为文件里别处也有 float: left(浮动收尾、小工具等)。
改成锚在左栏那个规则块内部判之后才红。顺手把 width: 190px 和右栏的 margin-left: 210px 也一并改成块内判据。
width: 190px
margin-left: 210px
e47bf37
#2
kratos_yang-3.2.33.zip
319d098f2fa5c5fb2764f25b8d55936c
theme-update/
底边仍不齐。 左栏卡片高度固定 467 px,右栏随内容在 366~1276 px 之间变。所以:
这属于另一个问题。按你的界定,这一轮不处理 —— 要不要处理、怎么处理(左栏跟随拉长?面板撑高?),等你拿主意后再另开一单,不混在这一单里。
用户确认:这个改法可以,本单可以关闭。
我在上一条评论里把「底边不齐」列为遗留问题,建议另开一单处理。用户明确回答:
左栏根据菜单多少固定高度,右侧可以让长度变化,这样没问题。
也就是说 现状就是期望状态:
之前担心的两种情况(「首页配置」左栏戳出去、「自动目录」左栏下方留灰底)都归入正常范围,不列为缺陷。
inc/options-framework/css/optionsframework.css
style.css
@media (min-width:960px)
#optionsframework-wrap > #optionsframework-metabox { padding-top: 0 }
'float: left' in css
关闭本单。
No dependencies set.
The note is not visible to the blocked user.
现象
「主题设置」页面(≥960px 宽屏时)是左边一列竖排标签、右边一块设置面板。两栏高度不相等,底部对不齐:
于是每个标签页都会错位,且错的方向还不一样:
多数标签页(11 个里有 10 个)是「右边高、左边矮」,左栏像只用了一半就被截断了。
根因
当前布局是 3.2.24 的
float+margin-left方案:h2.nav-tab-wrapper { float: left; width: 190px }—— 浮动元素的宽度固定,高度只能是内容高度,无法跟随右侧。#optionsframework-metabox { margin-left: 210px }—— 用外边距让开左栏,两者之间没有任何高度关联。#optionsframework-wrap::after { display: table; clear: both }收尾。浮动布局里「两栏等高」是做不到的:没有任何机制把右侧高度传给左侧,也没法让左侧反向撑高右侧。
期望
验收标准(要能逐条量出来)
|左栏底 - 右面板底| ≤ 1px。不改什么
options_framework_tabs)。#optionsframework-wrap的最大宽度(1180px)。顺带发现(探针侧,与产品无关,但值得记一笔)
本地几何夹具原先缺
wpColorPicker的桩,options-custom.js在$('.of-color').wpColorPicker()处抛 TypeError,导致标签切换的初始化整段没执行,量出来是「11 个分组全 display:block、面板一律 8112px」——一个看起来像"切换完全没生效"的假象。真站点该脚本的依赖是array('jquery','wp-color-picker'),由 WordPress 提供,不存在这个问题。夹具已补桩。需求理解纠正:不是「高度不一致」,是「顶边位置不一致」
你看过图之后明确:关键是位置 —— 左右两栏距离最上面的位置不同,一边高一边低,不是等不等高的问题。
我原来的描述抓错了重点,按你说的重新量了一遍。两栏各自的坐标(1360px 视口):
h2底h2.nav-tab-wrapper(标签白卡片)#optionsframework-metabox(容器)#optionsframework(设置白卡片)两栏白卡片的顶边差 = +10px —— 左边高、右边低。
根因
WordPress 后台自带一条样式:
这条是给「一路往下排的 metabox」留顶部间距用的。3.2.24 把标签列
float: left变成两栏并排之后,这 10px 就没人跟它配对了:h2.nav-tab-wrapper不带这层 padding → 白卡片顶边贴在标题底部(53);#optionsframework-metabox带这层 padding → 白卡片被推下 10px(63)。两栏各自都对齐到了自己的容器顶边,但两个容器的顶边不同。
修法
只在两栏并排时(≥960px)把那 10px 清零:
窄屏不清 —— 那里标签是横排在上一路往下,这 10px 是该留的间距。
为什么不是「给左栏补 10px padding」:那会让左栏白卡片内部多出一段看不见的空白、标签整体下移 10px,与页面标题之间出现空隙。问题只是从「两栏错位」变成「左栏内部偏下」,治标。
已验证
本轮只做这一件事
按你的纠正,这轮先只对齐顶边,不动底边高度(左栏 467 固定、右栏 366~1276 随标签变化)。
底边那个「左栏下方留大块灰底 / 首页配置页左栏戳出去」是另一个问题,要不要处理、怎么处理(左栏跟随拉长?面板撑高?),等你拿主意后再另开一单,不混在这一单里。
完成情况
3.2.33 已发布上线,本单可以结案了。
一、先确认需求理解(关键纠正)
这条需求我一开始理解错了,理解成「左右两栏高度要一样」。经你纠正,真正的问题是:
二、量出来的实际情况
在 1360 / 1100 / 960 三个宽度下分别量,结果完全一致:
左栏卡片高度固定 467 px;右栏从 366 px(顶部导航)到 1276 px(自动目录)不等。
三、病因(不在主题里,在 WordPress 后台自己的样式里)
WordPress 后台有一条通用规则,给「一路往下竖排的 metabox」留顶部间距:
早年这套设置页就是一路往下排的,这 10 px 正好是它和上方标题之间的空隙。
3.2.24 把标签列挪到左边、改成左右两栏并排之后,这 10 px 就没人跟它配对了:左栏不带这层间距,右栏还带着,于是右栏被压低 10 px。
四、改法
两栏并排时,把这 10 px 清零:
只在宽屏(960 px 及以上、真的排成两栏的时候)清。窄屏下标签是横排在上一路往下,那 10 px 是该留的间距,不动。
没有采用「给左栏补 10 px」这种凑齐的办法。 那样两栏顶边也能对上,但左栏卡片内部会多出一段看不见的空白,标签整体下移,标签和卡片上缘之间出现空档 —— 问题只是从「两栏错位」变成「左栏里头发空」。所以走的是「把多余的那一份去掉」,不是「给另一边补一份」。
五、验证结果
_geo333_top.py_geo333_top_falsify.py_pkgcheck333.py_pkgcheck333_falsify.py_admin330_tab_check/_admin328_check/_guard330/_toc330_logic/_test_toc/_geo330_rail/_geo331_inline顶边实测(修前 → 修后):
此外还验了:逐个点开全部 11 个标签,切换过程中右栏顶边始终是同一个值(不会被内容推下去)。
六、反向验证时抓出的一个真盲点
包契约里原本写的是「整个 CSS 文件里有
float: left就算两栏布局还在」。注入测试把左栏的float: left删掉之后,判据照样绿 —— 因为文件里别处也有float: left(浮动收尾、小工具等)。改成锚在左栏那个规则块内部判之后才红。顺手把
width: 190px和右栏的margin-left: 210px也一并改成块内判据。七、发布信息
e47bf37(信息带#2),已推 mainkratos_yang-3.2.33.zip,4123288 字节,md5319d098f2fa5c5fb2764f25b8d55936ctheme-update/(zip + readme + update.json),未解包覆盖服务器主题目录 —— 请在 WordPress 后台「外观 → 主题」里点更新八、这一单没做的事
底边仍不齐。 左栏卡片高度固定 467 px,右栏随内容在 366~1276 px 之间变。所以:
这属于另一个问题。按你的界定,这一轮不处理 —— 要不要处理、怎么处理(左栏跟随拉长?面板撑高?),等你拿主意后再另开一单,不混在这一单里。
主题设置:左侧标签栏与右侧设置框高度不一致,两栏底部应等高to 主题设置:左侧标签栏与右侧设置框顶边不对齐(右边低 10px)【原写"底部等高"系误解,已按用户纠正修订】收尾确认
用户确认:这个改法可以,本单可以关闭。
一、关于「底边不齐」的结论(不再另开单)
我在上一条评论里把「底边不齐」列为遗留问题,建议另开一单处理。用户明确回答:
也就是说 现状就是期望状态:
之前担心的两种情况(「首页配置」左栏戳出去、「自动目录」左栏下方留灰底)都归入正常范围,不列为缺陷。
二、本单最终交付
e47bf37(信息带#2),已推 maininc/options-framework/css/optionsframework.css(+22 行)、style.css(版本号)@media (min-width:960px)内#optionsframework-wrap > #optionsframework-metabox { padding-top: 0 }kratos_yang-3.2.33.zip,4123288 字节,md5319d098f2fa5c5fb2764f25b8d55936ctheme-update/(zip + readme + update.json),未解包覆盖服务器主题目录三、验证结果(最终)
_geo333_top.py_geo333_top_falsify.py_pkgcheck333.py_pkgcheck333_falsify.py四、本单留下的两条经验(已记进项目记忆)
'float: left' in css,注入测试把左栏的float删掉后判据照样绿(文件别处也有float: left)。改成锚在左栏规则块内部才红。关闭本单。