主页标签栏留白修复:min-width 与溢出收缩的冲突
前阵子折腾主题(ark)的编辑器标签栏,发现固定在最左边的”主页”标签格外宽,右侧拖着一串空白,跟旁边的文章标签放一起很突兀。这篇记录定位与修改过程,以及为什么最后又回滚了。
现象:主页标签太长,一串空白
标签栏(.editor-tabline)长这样:左边贴着一个固定不动的”主页”标签,后面是当前打开的文章标签。主页标签只有一个小图标加”主页”两个字,却占了整整 132px,右边一大片空白。

上排是修改前,下排是修改后(宽度贴着内容走)。视觉上就是”太长,有一堆空白” vs “刚好贴合”。
定位:132px 来自基础规则的 min-width
.editor-tab 的基础规则给所有标签设了一个统一的最小宽度,这是为了多标签时观感整齐:
.editor-tab {
...
max-width: min(260px, 70vw);
min-width: 132px;
...
}
对普通文章标签来说 132px 没什么问题——标题长,本来就要占位。但”主页”标签固定贴左、只有俩字,132px 就明显偏宽了。
有意思的是,标签栏溢出时(打开的标签太多,一行放不下)其实有一套收缩规则,会把主页标签从 132px 缩成一个 40px 的纯图标:
.editor-tabline.is-overflowing .editor-tab.is-pinned {
min-width: 40px;
max-width: 40px;
justify-content: center;
padding: 0 7px;
gap: 0;
}
所以问题只出在没溢出的时候——一切正常,主页标签就是 132px 宽,空白常驻。
修改:给 .is-pinned 加 min-width: 0
让主页标签不再被 132px 的最小宽度撑开,宽度改由内容决定:
.editor-tab.is-pinned {
position: sticky;
left: 0;
z-index: 2;
min-width: 0; /* 新增:允许收缩到内容宽度 */
gap: 7px;
}
.editor-tab.is-pinned 本身没有覆盖 min-width,所以基础规则的 132px 一直压在它头上;补上 min-width: 0 后,标签宽度 = 图标 + 文字 + padding,约 68px,空白消失。
副作用:左右留白不对称
改完立刻暴露了另一个问题——标签的左右 padding 本来就不对称:
.editor-tab {
padding: 0 9px 0 13px; /* 左 13px,右 9px */
}
左 13px 右 9px 的 4px 差,在 132px 宽时被大留白盖住根本看不出来;一旦缩到 68px,左右明显不一样齐,视觉上反而更难受。
回滚与取舍
考虑到左右不对称比”有点空”更扎眼,最终把 min-width: 0 撤掉,恢复了原来的样子。真正要落地,得把两个值一起改:
min-width: 0(收窄标签)+ padding 改成左右对称,比如padding: 0 11px;- 或者干脆接受 132px 的既有设计。
这次折腾的教训:缩小一个元素之前,先想清楚它的 padding/margin 是不是为原来的尺寸服务的。132px 的宽度恰好掩盖了不对称的内边距,一收缩就原形毕露。改宽度不是孤立的一行代码,得把”邻居”一起看。
相关文件
themes/ark/static/theme/css/ark-editor.1c3f5848.css——.editor-tab(587 行)、.editor-tab.is-pinned(621 行)、溢出收缩规则(648 行)