Template:导航框

来自滚动的天空Wiki
(重定向自Template:Navbox
文档图示 模板文档[查看] [编辑] [查看历史] [清除缓存]

本模板是从维基百科的Template:Navbox模板改造的,和维基百科的版本具有一定的区别天壤之别

基本参数列表

导航框使用小写的参数名称。所有的参数都是可选的。

基本的和最常见的参数如下所示(参见下方查看完整的列表,这些参数都是可省略的):

  • name:模板的名称(“Template:”后面的部分,注意不是模板的完整标题)。如果有该值,则标题的左边会加上一个“查 · 论 · 编”的链接导航栏。
  • title:标题栏的文字,也就是这个导航框的标题。
  • titlestyle:用于标题栏的CSS样式。
  • groupstyle:用于所有分组单元格的CSS样式。子框表的分组不受此影响。
  • above:在group/list区段之上显示的文字。
  • groupn(其中n是任意非负数):左侧分组单元格内的文字。
  • listn(其中n是任意非负数):右侧列表单元格内的文字。你可以在这里面使用维基文本语法来生成一个无序列表。由于导航框默认添加了hlist类,因此无序列表会显示为由小圆点隔开的水平列表。
  • below:在group/list区段之下显示的文字。

这里是一个基本的演示:

进一步的细节可参考#参数描述章节。

参数描述

下面是用于{{导航框}}的参数的一个完整清单。

设置参数

name

模板的名称。为了在所有使用了所生成模板的页面上,标题栏左侧的“查 · 论 · 编”链接都能正确地工作,就需要设置这个参数。你可以输入{{subst:PAGENAME}}作为这个参数的值,这也是个快捷的方法。

state

模板是否可折叠。collapsible为可折叠,collapsed为可折叠且默认已经折叠,plain为不可折叠(右边不显示“展开”“折叠”按钮)。默认情况下,除了子框之外,都是可折叠的。

单元格

title

显示在表格顶端一行居中位置的文字。它通常是该模板的主题,也就是主体内容的一个简要描述。本参数从技术上来说不是必需的,但是使用导航框而不带标题通常是没有意义的。

groupn(如group1、group2、group3……)

n为非负数。如果被指定,文字会显示在位于listn左侧的分组单元格中。如果被省略,对应的列表单元格就会占用表格的全部宽度。

listn(如list1、list2、list3……)

n为非负数,该模板的列表单元格,通常含有多个链接的无序列表。如果第n个列表不存在,则第n个分组单元格(groupn)也不会显示,但是不会对后面的列表(若有)造成影响。

groupa-bab均为数字)

将第a个列表单元格设置为一个子导航框,该子导航框的第b个分组。不应与lista共存,如果共存,则lista直接被忽略。

lista-bab均为数字)

将第a个列表单元格设置为一个子导航框,该子导航框的第b个列表。同上,不应与lista共存,如果共存,则lista直接被忽略。

above

一个全宽度单元格,显示在标题栏之下,分组与列表部分(group、list)之上。

below

一个全宽度单元格,显示在分组与列表部分(group、list)的下方。

titlea、abovea、belowa

将第a个列表单元格设置为一个子导航框,该子导航框的标题、上方框或下方框。同上,不应与lista等共存,如果共存,则lista直接被忽略。

这里对参数做一个更加形象的展示:

{{导航框
|title=title
|above=above
|group1=group1  |list1=list1
|group2=group2  |list2=list2
|group3=group3  |list3=list3
|group4=group4
  |title4=title4(看到没,这是一个“子框”)
  |above4=above4
  |group4-1=group4-1  |list4-1=list4-1
  |group4-2=group4-2  |list4-2=list4-2
  |group4-3=group4-3
    |title4-3=title4-3(没错,可以继续嵌套)
    |group4-3-1=group4-3-1  |list4-3-1=list4-3-1
    |group4-3-2=group4-3-2  |list4-3-2=list4-3-2
  |below4=below4
|group5=group5  |list5=list5
|list6=list6(可以继续无限添加列表)
|below=below
}}

样式参数

一般不建议更改样式,以保持Wiki中模板和网页的一致性。然而,修改样式的选项还是有的。简单地说,在单元格参数后面加一个style即为该单元格的样式。

bodystyle

指定应用到模板主体的CSS样式。此选项应谨慎使用,因为它可以导致视觉上的不一致。举例:

  • bodystyle=background: #nnnnnn;
  • bodystyle=width:N [em/%/px or width:auto];
  • bodystyle=float:[left/right/none];
  • bodystyle=clear:[right/left/both/none];

此外,MediaWiki:Gadget-navbox-var.css用CSS3的var函数提供了一种简便方式修改导航框的整体色彩。只需定义CSS变量即可把颜色应用到导航框。--navbox-hue--navbox-saturation分别指定了整体色相和纯度(饱和度)。--navbox-title-color--navbox-group-color--navbox-subgroup-color--navbox-sub-subgroup-color分别指定标题、分组、二级子框分组和三级以上子框分组的背景色属性background-color。这四个变量色相与纯度在每个导航框上默认与--navbox-hue--navbox-saturation相同,明度分别默认为72%、80%、86%、90%(越往后颜色越浅)。

{{导航框
|bodyclass=--navbox-hue:0;
|title=这是标题
|group1=这是分组
|group1-1=这是二级子框的分组
|group1-1-1=这是三级子框的分组
|group1-1-1-1=四级
|list1-1-1-1=钝角
}}

建议设定色相值不要加deg单位,因为这在某些浏览器上存在兼容问题。

titlestyle

应用到title(标题)的CSS样式:

  • titlestyle = background:#nnnnnn;
  • titlestyle = background:name;

groupstyle

应用到所有分组单元格的样式。该选项覆写应用于整个表格的任何样式。子框表的分组单元格不受影响。举例:

  • groupstyle = background:#nnnnnn;
  • groupstyle = text-align:[left/center/right];
  • groupstyle = vertical-align:[top/middle/bottom];

liststyle

应用到所有列表单元格的CSS样式。若指定了下面的oddstyle和evenstyle参数,则对于同一属性,它们的优先级高于本参数。

该参数影响子框表的列表单元格。

oddstyle、evenstyle

应用到所有的第奇数/偶数个列表。不会推翻由liststyle定义的样式,但优先级更高。缺省的表现是分别添加条纹状的颜色(白色和灰色)到奇数/偶数行,以提高可读性。一般不建议修改。

该参数会影响子框表的列表单元格。

注意:奇偶性的判断是看这个列表在整个根框表中是第几个,与参数名称中的标号无关。

abovestyle、belowstyle

应用到顶端单元格(通过above参数指定)和底端单元格(通过below参数指定)。典型地被用来设置背景颜色或文本对齐方式。举例:

  • abovestyle = background:#nnnnnn;
  • abovestyle = text-align:[left/center/right];

groupnstyle、listnstyle

n个分组或列表的CSS样式。

groupa-bstyle、lista-bstyle

类似地,第a个列表的子导航框的第b个分组或列表的样式。

类参数

与样式参数类似,设置一类或一个单元格的(类)。这里不再赘述。

注意单元格默认设置了一些类,这些类不会被类参数覆盖,如下表所示:

单元格名称
导航框本身 navbox hlist
所有的分组框 navbox-group navbox-cell
所有的列表框 navbox-list navbox-cell
没有对应分组框的列表框 navbox-sole-row
上方框 navbox-above navbox-sole-row
下方框 navbox-below navbox-sole-row
标题框 navbox-title navbox-sole-row
n级嵌套子导航框
(根导航框视为第0级)
navbox-level-n
第奇数个列表 navbox-list-odd
第偶数个列表 navbox-list-even

此外,下面列举了一些常用的用于框表本身的类(bodyclass):

collapsible
若有此类,则该导航框将可折叠。默认情况下导航框就是可折叠的(子框除外),如需不让导航框折叠,可以设置state=plain。请不要使用mw-collapsible
collapsed
若有此类,则该导航框默认已被折叠。建议直接使用state=collapsed。请不要使用mw-collapsed
plainbox
若有此类,则所有的分组单元格显示为列表单元格上方的一整行,而非列表单元格左侧。
mobileplainbox
类似于plainbox,只会在较小的屏幕上生效。

示例

基本的导航框

{{导航框
|title = 滚动的天空[[关卡]]列表
|group1 = 1星关卡
|list1 = 
* [[山丘]]
* [[幻想]]
* ……

|group2 = 2星关卡
|list2 = 
* [[天空]]
* [[王牌]]
* ……

|group3 = 3星关卡
|list3 = 
* [[森林]]
* [[沙漠]]
* ……
|group4 = 4星关卡
|list4 = 
* [[火山]]
* [[城市]]
* ……

|group5 = 5星关卡
|list5 = 
* [[电子迷宫]]
* [[天空之城]]
* ……

|group6 = 6星关卡
|list6 = 
* [[生日快乐]]
* [[四周年]]
}}

带有子导航框和mobileplainbox类

该示例中,由于设置了mobileplainbox,所以在尺寸较小的屏幕中,“普通关卡”显示为一整行。

{{导航框
|title = 滚动的天空[[关卡]]列表
|bodyclass = mobileplainbox
|group1 = 普通关卡
|group1-1 = 1星关卡
|list1-1 =
* [[山丘]]
* [[幻想]]
* ……
|group1-2 = 2星关卡
|list1-2 = 
* [[天空]]
* [[王牌]]
* ……

|group1-3 = 3星关卡
|list1-3 = 
* [[森林]]
* [[沙漠]]
* ……
|group1-4 = 4星关卡
|list1-4 = 
* [[火山]]
* [[城市]]
* ……

|group1-5 = 5星关卡
|list1-5 = 
* [[电子迷宫]]
* [[天空之城]]
* ……
|group2 = 迷你关卡
|list2 = 
* [[迷你关卡1]]
* [[迷你关卡2]]
* [[迷你关卡3]]
* [[迷你关卡4]]

|group3 = 分段关卡
|list3 = 
* [[冠军赛]]
* [[微芯片]]
* [[橄榄球]]
* [[海战]]
}}

带有上方框和下方框

由于设置了bodyclass=collapsible,该导航框可折叠。

{{导航框
|title = 滚动的天空[[关卡]]列表
|bodyclass = collapsible
|above = 
* [[关卡要素]]
* [[迷你挑战]]
* [[周赛]]
* [[走位]]
|group1 = 1星关卡
|list1 = 
* [[山丘]]
* [[幻想]]
* ……

|group2 = 2星关卡
|list2 = 
* [[天空]]
* [[王牌]]
* ……

|group3 = 3星关卡
|list3 = 
* [[森林]]
* [[沙漠]]

* ……
|group4 = 4星关卡
|list4 = 
* [[火山]]
* [[城市]]
* ……

|group5 = 5星关卡
|list5 = 
* [[电子迷宫]]
* [[天空之城]]
* ……

|group6 = 6星关卡
|list6 = 
* [[生日快乐]]
* [[四周年]]

|below = 所有的关卡数据可参考[[Special:CargoTables/Level]]。
}}

plainbox和子导航框

{{导航框
|title=滚动的天空
|bodyclass=plainbox
|state=plain
|list1={{导航框
|title=关卡
|state=collapsed
|group1=主线关卡
|list1=
* [[云]]
* [[山丘]]
* [[天空]]
* [[森林]]
|group2=奖励关卡
|list2=
* [[幻想]]
* [[赞歌]]
* [[糖果]]
* ……
|group3=迷你关卡
|list3=
* [[迷你关卡1]]
* [[迷你关卡2]]
* ……
}}
|list2={{导航框
|title=版本
|state=collapsed
|group1=1.x
|list1=
* [[1.0]]
* [[1.1]]
* ……
|group2=2.x
|list2=
* [[2.0]]
* [[2.1]]
* ……
}}
}}

效果:

通过嵌套模板实现的子导航框

{{导航框
|title=滚动的天空
|bodyclass=mobileplainbox
|group1=关卡
|list1={{导航框
|group1=主线关卡
|list1=
* [[云]]
* [[山丘]]
* [[天空]]
* [[森林]]
|group2=奖励关卡
|list2=
* [[幻想]]
* [[赞歌]]
* [[糖果]]
* ……
|group3=迷你关卡
|list3=
* [[迷你关卡1]]
* [[迷你关卡2]]
* ……
}}
|group2=版本
|list2={{导航框|child
|group1=1.x
|list1=
* [[1.0]]
* [[1.1]]
* ……
|group2=2.x
|list2=
* [[2.0]]
* [[2.1]]
* ……
}}
}}

和维基百科的区别

  • 所有的导航框都会在手机版正常显示。大多数样式由CSS样式表实现,而非元素的内联样式。
  • 导航框不使用表格布局,而是通过display: grid实现。不区分内框表和外框表,也没有特定的用作间隔的单元格。
  • 对列表和分组的数量没有限制。
  • 对子导航框提供原生支持,且每个子导航框与列表框是同一个元素。传统方式中,仅有将第一个参数设置为child是有效的。
  • 取消分类功能。如需分类,应当手动进行分类。
  • 可以对设置特定的单元格类和样式。对列表或者所有的奇数/偶数列设置的通用样式对子框表也是有效的(传统方式设置的子导航框无效)。
  • 某一个单元格受到不同参数的样式或类的设置时,这些样式或类不是相互覆盖,而是相互叠加。其中,样式发生冲突时,越“精准”的单元格的样式优先级越高,比如list1style优先于oddstyle,而oddstyle优先于liststyle。
上述文档内容嵌入自Template:导航框/doc编辑 | 历史
编者可以在本模板的沙盒创建 | 镜像和测试样例创建页面进行实验。
请将模板自身所属的分类添加在文档中。本模板的子页面