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-b(a、b均为数字)[编辑源代码]
将第a个列表单元格设置为一个子导航框,该子导航框的第b个分组。不应与lista
共存,如果共存,则lista
直接被忽略。
lista-b(a、b均为数字)[编辑源代码]
将第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。