2023年政策修订增补工作正在进行中,欢迎参与!
  • Moegirl.ICU:萌娘百科流亡社群 581077156(QQ),欢迎对萌娘百科运营感到失望的编辑者加入
  • Moegirl.ICU:账号认领正在试运行,有意者请参照账号认领流程

Template talk:Navbox/编辑请求 - Grandom(2020.12.08)

萌娘百科,万物皆可萌的百科全书!转载请标注来源页面的网页链接,并声明引自萌娘百科。内容不可商用。
跳转到导航 跳转到搜索

由Grandom提出的对Template:NavboxTemplate:Navbox subgroupMediaWiki:Gadget-desktop-styles.cssMediaWiki:Gadget-mobile-styles.css的编辑请求:

状态:   完成

平时编辑过程中陆续注意到navbox里的一些小问题,但考虑到其在全站大面积使用也就没急着提交。前阵子注意到模块化navbox取得了一些进展,所以这次集中请求编辑,希望在完全模块化之前解决这些问题。
由于涉及页面较多,内容较长,所以单开了一个讨论页来申请。这里召唤两位熟悉的前辈@AnnAngela和@サンムル帮助审核,也欢迎其他大佬给出建议。
所有修改一共分成四部分,可以使用右侧的切换按钮分别显示每部分修改与下方的说明。

grouppadding 不显示不显示显示显示
title居中 不显示不显示显示显示
移动端绿条 不显示不显示显示显示
其他问题 不显示不显示显示显示
Template:Navbox
---Title and Navbar---
-->{{#if:{{{title|}}}|<tr>{{#if:{{{titlegroup|}}}|<!--
 --><td class="navbox-group" style="{{{basestyle|}}};{{{groupstyle|}}};{{{titlegroupstyle|}}}">{{{titlegroup|}}}</td><!--
 --><th style="border-left:2px solid #fdfdfd;width:100%;|<th style="}}{{{basestyle|}}};{{{titlestyle|}}}" <!--
 -->colspan={{#expr:2{{#if:{{{imageleft|}}}|+1}}{{#if:{{{image|}}}|+1}}{{#if:{{{titlegroup|}}}|-1}}}} <!--
 -->class="navbox-title"><!--

-->{{#if:{{#switch:{{{navbar|}}}|plain|off=1}}<!--
 -->{{#if:{{{name|}}}||{{#switch:{{{border|{{{1|}}}}}}|subgroup|child|none=1}}}}|<!--
 -->{{#ifeq:{{{navbar|}}}|off|{{#ifeq:{{{state|}}}|plain|<div style="float:right;width:em;">&nbsp;</div>}}|<!--
 -->{{#ifeq:{{{state|}}}|plain||<div style="float:left; width:em;text-align:left;">&nbsp;</div>}}}}|<!--
 --><div style="float:left; width:em;text-align:left;"><!--
 -->{{Navbar|{{{name}}}|fontstyle={{{basestyle|}}};{{{titlestyle|}}};border:none;|mini=1}}<!--
 --></div>{{#ifeq:{{{state|}}}|plain|<div style="float:right;width:em;">&nbsp;</div>}}}}<!--

 --><span style="font-size:{{#switch:{{{border|{{{1|}}}}}}|subgroup|child|none=100|#default=110}}%;"><!--
 -->{{{title}}}</span></th></tr>}}<!--

需要对每个group进行修改:
-->{{#if:{{{list2|}}}|<!--
 -->{{#if:{{{title|}}}{{{above|}}}{{{list1|}}}|<tr style="height:2px"><td></td></tr>}}<tr><!--
 -->{{#if:{{{group2|}}}|<td class="navbox-group" style="{{{basestyle|}}};{{{groupstyle|}}};{{{group2style|}}}"><!--
 -->{{{group2}}}</td><td style="text-align:left;border-left:2px solid #fdfdfd;|<td colspan=2 style="}}<!--
 -->width:100%;padding:0px;{{{liststyle|}}};{{{evenstyle|}}};{{{list2style|}}}" <!--
 -->class="navbox-list navbox-{{#ifeq:{{{evenodd|}}}|swap|odd|{{{evenodd|even}}}}}"><!--
 --><div style="padding:{{{listpadding|0em 0.25em}}}">{{{list2}}}</div></td></tr>}}<!--
MediaWiki:Gadget-desktop-styles.css
.navbox-group {
    font-weight: 700;
    white-space: nowrap;
}


MediaWiki:Gadget-mobile-styles.css
html > body.skin-minerva .navbox {
    border: 1px solid #aaa;
    clear: both;
    padding: 1px;
    text-align: center;
    width: 100%;
}

html > body.skin-minerva .navbox-subgroup .navbox-group {
    background: #e6f6e6;
}

@media screen and (max-width: 640px) {
    html > body.skin-minerva .navbox-group {
        display: block;
    }
    html > body.skin-minerva .navbox-group+* {
    }
}
Template:Navbox subgroup
|border = {{#if:{{{border|}}}|{{{border}}}|}}










|style = {{{style|}}}{{{bodystyle|}}}
|groupstyle = {{{groupstyle|}}}

|{{#if:{{{evenodd|}}}|evenodd|void1}} = {{{evenodd|}}}
|{{#if:{{{listpadding|}}}|listpadding|void2}} = {{{listpadding|}}}

需要对每个group进行修改:
|group1 = {{{group1}}}

以上所有更改已应用在…/naubox…/naubox subgroup…/desktop.css…/mobile.css中,并利用…/宝可梦系列角色…/fripSide和在数十个大家族模板中以预览的方式进行测试。
待进一步审核确认后,我也会提供四个页面修改后的完整代码用于编辑。—— Grandom 2020年12月8日 (二) 03:03 (CST)


看下来修改的wiki部分没问题,css部分还需要@AnnAngela的意见。P.S.这个编辑页面做得太精美了,建议永久留存。--サンムル讨论) 2020年12月8日 (二) 10:37 (CST)
Face-smile.svg感谢 为了代码不被识别处理,用各种转义跟wikitext和HTML斗智斗勇了好久捂脸.webp。—— Grandom 2020年12月8日 (二) 17:38 (CST)
关于标题居中,不建议手工计算文本宽度,可以考虑position:absolute。
话说这个申请放在单开的用户讨论页,真的有其他人会看到吗……——移动版用户 Bhsd讨论) 2020年12月9日 (三) 02:13 (CST)
这个地方是以尽量减小改动幅度为原则做了一些妥协。“既然不能限制折叠按钮的宽度,原来的6em也没什么特殊意义了,不如换成一个更接近居中的宽度。”是这么个思路。
换成绝对定位的话修改幅度有点大,有点担心可能在某些页面出现什么奇怪的问题:
Template:Navbox
---Title and Navbar---
-->{{#if:{{{title|}}}|<tr>{{#if:{{{titlegroup|}}}|<!--
 --><td class="navbox-group" style="{{{basestyle|}}};{{{groupstyle|}}};{{{titlegroupstyle|}}}">{{{titlegroup|}}}</td><!--
 --><th style="border-left:2px solid #fdfdfd;width:100%;|<th style="}}position:relative;{{{basestyle|}}};{{{titlestyle|}}}" <!--
 -->colspan={{#expr:2{{#if:{{{imageleft|}}}|+1}}{{#if:{{{image|}}}|+1}}{{#if:{{{titlegroup|}}}|-1}}}} <!--
 -->class="navbox-title"><!--

-->{{#if:{{#switch:{{{navbar|}}}|plain|off=1}}<!--
 -->{{#if:{{{name|}}}||{{#switch:{{{border|{{{1|}}}}}}|subgroup|child|none=1}}}}|<!--
 -->{{#ifeq:{{{navbar|}}}|off|{{#ifeq:{{{state|}}}|plain|<div style="float:right;width:6em;">&nbsp;</div>}}|<!--
 -->{{#ifeq:{{{state|}}}|plain||<div style="float:left; width:6em;text-align:left;">&nbsp;</div>}}}}
|<!--
 --><div style="float:left; width:6em;position:absolute;text-align:left;"><!--
 -->{{Navbar|{{{name}}}|fontstyle={{{basestyle|}}};{{{titlestyle|}}};border:none;|mini=1}}<!--
 --></div>{{#ifeq:{{{state|}}}|plain|<div style="float:right;width:6em;">&nbsp;</div>}}
}}<!--

MediaWiki:Gadget-desktop-styles.cssMediaWiki:Gadget-mobile-styles.css
.navbox-title > .mw-collapsible-toggle {
    position: absolute;
    right: 1em;
}

另外这四个页面基本都要管理员以上权限才能修改,监视了的人大概也不多。分类:受到保护无法编辑的页面分类:积压工作里还是挺明显的,挂上一阵相关人员应该就都看到了…吧。—— Grandom 2020年12月9日 (三) 07:44 (CST)
成功地把我钓进来了XD--サンムル讨论) 2020年12月10日 (四) 11:22 (CST)
看起来没什么大问题,请提供可供直接复制的代码。——From AnnAngela the Temporary Bureaucrat (Talk) 2020年12月10日 (四) 12:59 (CST)
@AnnAngela Face-smile.svg感谢,一直以来的各种申请都麻烦AnnA姐了。navboxnavbox subgroupGadget-desktop-stylesGadget-mobile-styles —— Grandom 2020年12月10日 (四) 15:43 (CST)
Done.——From AnnAngela the Temporary Bureaucrat (Talk) 2020年12月10日 (四) 21:08 (CST)
@AnnAngela {{Navbox}}Navbar一节有四个&nbsp;被转换成正常空格了。没注意<pre>不能防止其转换。My bad… —— Grandom 2020年12月10日 (四) 21:33 (CST)
Fixed.——From AnnAngela the Temporary Bureaucrat (Talk) 2020年12月10日 (四) 21:46 (CST)
Face-smile.svg感谢 —— Grandom 2020年12月10日 (四) 21:55 (CST)

这此的更改和上次的就麻烦@サンムル同步到模块:nav了。
另外提报个模块:nav collapsible groups的bug:这里的liststyle应该只提交给子navbox的list,父navbox的list无需自定义样式参数,模块里多提交给了父navbox的list:

{{navbox with collapsible groups|style=display:inline-table;width:50%;vertical-align:top|name=test|title=模板:navbox with collapsible groups|group1=group1|list1=list1|state1=mw-uncollapsed|group2=group2|list2=list2 list2style="font-size:150%"|list2style=font-size:150%|state2=mw-uncollapsed}}
{{#invoke:nav|box|collapsible groups|style=display:inline-table;width:50%;vertical-align:top|name=test|title=模块:nav{{!}}box{{!}}collapsible groups|group1=group1|list1=list1|state1=mw-uncollapsed|group2=group2|list2=list2 list2style="font-size:150%"|list2style=font-size:150%|state2=mw-uncollapsed}}

P.S.修复后会将示例删除消除隐藏分类 —— Grandom 2020年12月10日 (四) 22:28 (CST)

Done.--サンムル讨论) 2020年12月11日 (五) 09:57 (CST)

@Grandom width: 6em -> width 2.78em 的更改造成了布局Bug,父元素的宽度比子元素还小了,见图:截图 --聪明又可爱的妹空酱讨论) 2020年12月12日 (六) 23:40 (CST)
@妹空酱 这里为6em时,在使用Wikiplus时父元素宽度也会小于子元素。但因为规定了子元素宽度所以应该不会影响布局,之前规定为140px,现在为fit-content !important,详见Special:差异/955613/4585025。—— Grandom 2020年12月13日 (日) 00:21 (CST)
测试了一下,fit-content属性同样可以解决新版Wikiplus的换行问题,建议添加至小工具,或者干脆将该条转移至全站桌面版CSS。@AnnAngela —— Grandom 2020年12月13日 (日) 00:33 (CST)
@Grandom 这与Wikiplus无关,此外Wikiplus不希望覆盖mw本身自带样式。父元素宽度小于子元素这本来就不合理,当前只是恰好能工作,此外我看不出这个地方要限制宽度的理由。cc @AnnAngela --聪明又可爱的妹空酱讨论) 2020年12月13日 (日) 10:03 (CST)
我记得限制宽度是为了保证title能正居中而不是歪的,不过我早就改了=。=Special:差异/955613/4585025——From AnnAngela the Temporary Bureaucrat (Talk) 2020年12月13日 (日) 10:07 (CST)
@妹空酱 所以我才建议把这一条写进mw自带样式里啊,此处@AnnAngelaMediaWiki:Gadget-Wikiplus.css在使用新版Wikiplus时不生效。
或者干脆让Navbar成为绝对元素从根本上解决需要考虑子元素宽度的问题:
 --><div style="position:relative;float:left; width:2.78em;text-align:left;"><span class="mobileonly">&nbsp;</span><!--
 -->{{Navbar|{{{name}}}|style=position:absolute|fontstyle={{{basestyle|}}};{{{titlestyle|}}};border:none;|mini=1}}<!--

这样连MediaWiki:Gadget-Wikiplus.css的内容都可以省了。—— Grandom 2020年12月13日 (日) 11:37 (CST)
首先,css处无法检测是否安装了w+,所以只能在gadget样式里加(等新版正式发布后你仍然可以通过小工具来加载新版)。其次,如果写成绝度定位,那么窄屏+桌面版下可能会出现元素重叠问题。——From AnnAngela the Temporary Bureaucrat (Talk) 2020年12月13日 (日) 13:22 (CST)