模板:Navbox

来自维阿百科
跳转至: 导航搜索
Template-info.png 模板文档  [查看] [编辑] [历史] [刷新]

使用此模板可以相对方便和快速地归纳同类型条目去创作一个导航模版(这里指的是分类:大家族模板)。

可变参数十分多,可以配合{{Navbox subgroup}}、{{Navbox with columns}}、{{Navbox with collapsible groups}}使用。

常用参数

name
模板的名称(“Template:”后面的部分,注意不是模板的标题),像:“萌属性”。
title
标题栏的文字,像:“属性&萌属性”,不一定与name相同。
state
[mw-uncollapsed, mw-collapsed]
方框的折叠状态。
titlestylegroupstyleevenstyle
分别用于标题栏、group、偶数list(这部分默认是淡绿色)的CSS样式,像:background:gray
above
在group/list区段之上显示的内容。
groupn
左侧的文字,在listn之前(如果groupn被省略,listn从方框的左侧开始)。
listn
列出维基链接的文字,通常以圆点符号分隔,像:[[A]] • [[B]] • …
below
在group/list区段之下显示的可选文字。
包含常见参数的源代码,可复制后用于快速创建大家族模板

不使用的参数请删掉,勿保留。

{{Navbox
|name  = {{subst:PAGENAME}}
|title = 
|state = 
|titlestyle= background:
|groupstyle= background:
|evenstyle = background:

|above = 

|group1= 
|list1 = [[]] • <!--
      -->[[]]

|group2= 
|list2 = [[]] • <!--
      -->[[]]

|group3= 
|list3 = [[]] • <!--
      -->[[]]

|group4= 
|list4 = [[]] • <!--
      -->[[]]

|group5= 
|list5 = [[]] • <!--
      -->[[]]

|group6= 
|list6 = [[]] • <!--
      -->[[]]

|below = 
}}

Navbox其他大部分参数都不常用,所以将常用参数封装成两个简化模版:{{大家族}}和{{大家族内容行}}({{Links}})。

一些常用参数的效果参见#表格的布局#示例;进一步的细节,以及复杂的约束,在下方#参数描述章节作了解释。

参数描述

下面是用于{{Navbox}}的参数的一个完整清单。在大多数情况下,只要有参数nametitlelist1就可以了,尽管子导航框甚至不需要设置那些参数。

{{Navbox}}与它的姊妹模板{{Navbox with columns}}、{{Navbox with collapsible groups}}共用很多常用的参数,以提高一致性与易用性。带一个“”标记的参数适用于所有这三个主模板。

设置参数

name
模板的名称。为了在所有使用了所生成模板的页面上,“查 • 论 • 编”链接都能正确地工作,就需要设置这个参数。你可以输入{{subst:PAGENAME}}作为这个参数的值,这也是个快捷的方法。此参数是必需的。
state
[mw-uncollapsed, mw-collapsed, plain, off]
  • 如果设置为mw-collapsed,该导航框总会在开始时以折叠起来的状态展现。
  • 如果设置为plain,该导航框总会在被展开时不带右侧的“隐藏”链接,并且标题会保持居中(通过使用补白来偏移“查 • 论 • 编”链接)。
  • 如果设置为off,该导航框总会在被展开时不带右侧的“隐藏”链接,但是没有补白会被用来保持标题居中。这只是为了高级用法;“plain”选项应能满足大多数需要将“显示”/“隐藏”按钮隐藏起来的应用。
  • 如果设置为除mw-collapsedplainoff之外的其它值(像“mw-uncollapsed”),该导航框总会在开始时以展开的状态出现,但是带有“隐藏”按钮。
很多时候,对于一个导航框,编辑者会想要一个缺省的初始状态,并且在条目中它可以被覆写。要做到这一点,这里有个窍门:
在你的模板里,创建一个参数也命名为“state”作为一个传递,像这样:
  • |state = {{{state<includeonly>|你想要的初始状态</includeonly>}}}
  • <includeonly>|会使得当查看模板页面本身时,模板会被展开。
navbar
缺省为Navbar。如果设置为plain,在标题栏左侧的查 • 论 • 编链接不会显示出来,而且补白会被自动应用以保持标题居中。设置为off可以移除查 • 论 • 编链接,但是不会应用补白(这只是为了高级用法;“plain”选项应能满足大多数不想要导航栏的应用。)强烈建议使用者不要隐藏导航栏,为的是使用户编辑该模板更加容易,并且可以贯穿各个页面都有一个标准的风格。
border
[subgroup, child, none]
如果设置为以上三个值,导航框都将没有边框,不过使用上还是有些许差别的。详见#子导航框
class
为Navbox主体table元素设置class

单元格

title
显示在表格顶端一行居中位置的文字。它通常是该模板的主题,也就是主体内容的一个简要描述。这应该是单独的一行,但是如果需要第二行,请使用{{brClear}}来保证正确的居中。本参数从技术上来说不是必需的,但是使用{{Navbox}}而不带标题是相当没有意义的。
groupn
(即group1group2等等)如果被指定,文字会显示在位于listn左侧的抬头单元格中。如果被省略,listn占用表格的全部宽度。
listn
(即list1list2等等)该模板的主体,通常为一栏链接。格式为内联;然而,如果整个列表被装入<div> </div>之内,文字能够被输入到不同的行中。最少需要一个list参数;每个附加的list被显示在一个单独的表格行中。每个listn可能在其前面有一个相对应的groupn参数,如果提供了的话(参见下方)。
image
一张图片,会显示在标题(title)之下、主体(group/list)之右侧的一个单元格中。为使图片能正确地显示,必须指定list1参数。image参数接受标准的维基代码来显示图片,即:
image = [[File:Example.jpg|100px]](参见Help:图像
imageleft
一张图片,会显示在标题(title)之下、主体(list)之左侧的一个单元格中。为使图片能正确地显示,必须指定list1参数,而且不能指定分组(group)。imageleft参数接受标准的维基代码来显示图片,即:
imageleft = [[File:Example.jpg|100px]]
above
一个全宽度单元格,显示在标题栏与第一个group/list之间,也就是位于该模板的主体(group、list和image)之上。在一个不带图片的模板中,above与不带group1参数的list1参数以同样的方式运作。
below
一个全宽度单元格,显示在该模板主体(group、list和image)的下方。在一个不带图片的模板中,below与该模板最后面的不带groupn参数的listn参数以同样的方式运作。作为一个使用了below参数的示例,请参见{{非洲}}。

样式参数

style
指定应用到模板主体的CSS样式。bodystyle参数也有下面举例的同样效果,并能被用来代替这个style参数。此选项应谨慎使用,因为它可以导致视觉上的不一致。举例:
  • style = background:#nnnnnn;
  • style = width:N [em/%/px or width:auto];
  • style = float:[left/right/none];
  • style = clear:[right/left/both/none];
titlestyle
应用到title的CSS样式,最常见的有导航栏的背景颜色:
  • titlestyle = background:#nnnnnn;
  • titlestyle = background:name;
groupstyle
应用到所有group单元格的CSS样式。该选项覆写应用于整个表格的任何样式。举例:
  • groupstyle = background:#nnnnnn;
  • groupstyle = text-align:[left/center/right];
  • groupstyle = vertical-align:[top/middle/bottom];
groupnstyle
应用到特定groupN的CSS样式。拥有最高的显示优先级,可以分别指定不同的group显示不同效果。
liststyle
应用到所有list的CSS样式。若指定了下面的listnstyle、oddstyleevenstyle参数,则它们的优先级高于本参数。
listnstyle
应用到特定listN的CSS样式。拥有最高的显示优先级,可以分别指定不同的list显示不同效果。
oddstyleevenstyle
应用到奇数/偶数编号的列表。会推翻由liststyle定义的样式。缺省的表现是分别添加条纹状的颜色(白色和灰色)到奇数/偶数行,以提高可读性。除了在非常特别的情况下,这些设置不应更改。
evenodd
[swap, even, odd]
设置为swap可使每个list奇偶翻转;可用于解决插入子导航框后奇偶样式错位的问题。
设置为evenodd可使所有list的样式全为偶数行或奇数行的样式。
abovestylebelowstyle
应用到顶端单元格(通过above参数指定)和底端单元格(通过below参数指定)。典型地被用来设置背景颜色或文本对齐方式:
  • abovestyle = background:#nnnnnn;
  • abovestyle = text-align:left/center/right;
缺省样式

这里列出的样式设置是使用导航框的编辑者最经常更改的那些设置。其它更加复杂的样式设置被排除在这个列表之外,以保持它简单。大多数样式是在MediaWiki:Common.css中设置。

bodystyle  = background:#fdfdfd; width:100%; vertical-align:middle;
titlestyle = background:#ccccff; padding-left:1em; padding-right:1em; text-align:center;
abovestyle = background:#ddddff; padding-left:1em; padding-right:1em; text-align:center;
belowstyle = background:#ddddff; padding-left:1em; padding-right:1em; text-align:center;
groupstyle = background:#ddddff; padding-left:1em; padding-right:1em; text-align:right;
liststyle  = background:transparent; text-align:left/center;
oddstyle   = background:transparent;
evenstyle  = background:#f7f7f7;

由于liststyleoddstyle是透明的,奇数列表有bodystyle的颜色,其缺省值是#fdfdfd(白色带有少许灰色)。一个list有text-align:left;设定,如果它有一个group的话;否则,它有text-align:center;设定。由于只有bodystyle有一个垂直对齐(vertical-align)属性,所 有其它样式继承其vertical-align:middle;设定。

表格的布局

由{{Navbox}}不带imageabovebelow参数生成的表格(添加了灰色的列表背景色仅仅是为了演示):


由{{Navbox}}带有imageabovebelow参数生成的表格(添加了灰色的列表背景色仅仅是为了演示):


由{{Navbox}}带有imageimageleftlists,且不带groupsabovebelow生成的表格(添加了灰色的列表背景色仅仅是为了演示):

示例

不带图片

-{}-{{Navbox
|name  = Navbox/doc
|title = [[大洗女子学园]]学生社团成员

|group1= 排球部
|list1 = [[矶边典子]] • <!--
      -->[[河西忍]] • <!--
      -->[[佐佐木明日]] • <!--
      -->[[近藤妙子]]

|group2= 汽车部
|list2 = [[中岛丽罗]] • <!--
      -->[[铃木(少女与战车)|铃木]] • <!--
      -->[[星野(少女与战车)|星野]] • <!--
      -->[[土屋(少女与战车)|土屋]]

|group3= 广播部
|list3 = [[王大河]]
}}

带图片,不带分组

-{}-{{Navbox
|name  = Navbox/doc
|title = [[大洗女子学园]]学生社团成员
|image = [[File:GUP_Ooarai.svg|80px]]
|list1 = [[矶边典子]] • <!--
      -->[[河西忍]] • <!--
      -->[[佐佐木明日]] • <!--
      -->[[近藤妙子]] • <!--
      -->[[中岛丽罗]] • <!--
      -->[[铃木(少女与战车)|铃木]] • <!--
      -->[[星野(少女与战车)|星野]] • <!--
      -->[[土屋(少女与战车)|土屋]] • <!--
      -->[[王大河]]
}}

带两张图片,不带分组,多重列表

-{}-{{Navbox
|name  = Navbox/doc
|title = [[大洗女子学园]]学生社团成员
|image = [[File:GUP_Ooarai.svg|80px]]
|imageleft = [[File:GUP Logo Alpha0.png|80px]]

|list1 = [[矶边典子]] • <!--
      -->[[河西忍]] • <!--
      -->[[佐佐木明日]] • <!--
      -->[[近藤妙子]]

|list2 = [[中岛丽罗]] • <!--
      -->[[铃木(少女与战车)|铃木]] • <!--
      -->[[星野(少女与战车)|星野]] • <!--
      -->[[土屋(少女与战车)|土屋]]

|list3 = [[王大河]]
}}

带有图片、分组、上方注释、下方注释

-{}-{{Navbox
|name  = Navbox/doc
|title = [[大洗女子学园]]学生社团成员
|image = [[File:GUP_Ooarai.svg|80px]]

|above = (仅列出参加了社团的成员)

|group1= 排球部
|list1 = [[矶边典子]] • <!--
      -->[[河西忍]] • <!--
      -->[[佐佐木明日]] • <!--
      -->[[近藤妙子]]

|group2= 汽车部
|list2 = [[中岛丽罗]] • <!--
      -->[[铃木(少女与战车)|铃木]] • <!--
      -->[[星野(少女与战车)|星野]] • <!--
      -->[[土屋(少女与战车)|土屋]]

|group3= 广播部
|list3 = [[王大河]]

|below = 《[[少女与战车]]》官网:https://girls-und-panzer.jp/
}}

子导航框

主页面:Template:Navbox subgroup

要在父级导航框中放置子导航框,{{Navbox subgroup}}是推荐的用法。但通过在{{Navbox}}加入|border = subgroup/child或将第一个参数(无名)设为subgroup/child也可以达到同样的效果。子导航框不需要name参数。

{{Navbox subgroup
|group1= 
|list1 = 

|group2= 
|list2 = 
……
}}
{{Navbox|border=subgroup
|group1= 
|list1 = 

|group2= 
|list2 = 
……
}}
{{Navbox|subgroup
|group1= 
|list1 = 

|group2= 
|list2 = 
……
}}

它看起来是这样:

接着把它放进某个list中即可(可增加缩进来表明层级关系)。例如:

-{}-{{Navbox
|name  = Navbox/doc
|title = 子导航框示例

|group1= 分组1
|list1 = 列表1

|group2= 分组2
|list2 = {{Navbox subgroup
  |evenodd = swap

  |group1= 分组2.1
  |list1 = 列表1

  |group2= 分组2.2
  |list2 = 列表2

  |group3= 分组2.3
  |list3 = 列表3
  }}

|group3= 分组3
|list3 = 列表3
}}

可以注意到上面使用了一个evenodd参数,这是用来调整某些子分组中条纹状颜色带的分布,以确保颜色带交叉排列。如果想去除所有的条纹颜色带,可以在每个Navbox中设置liststyle = background:transparent

从设计者的思路来看,border = subgroupborder = child是适用于不同情况的。设为subgroup时group更窄,适用于子导航框的group与父导航框的group并排排列,如上面的例子中,分组2.X与分组2在一行;而child的group保持默认宽度,适合子导航框的group充当第一级group,如下面的#多重展开/折叠不过混用也没几个人会发现。

border = none的外观与subgroup、child相似,但是它适用于“不在导航框中使用”的情况,比如把{{Navbox|none …}}嵌入到某个其他模板(并非此模板及其姊妹模板)中。相反,不要把subgroup、child嵌入到Navbox及姊妹模板之外的模板,会造成潜在的错误。

多重展开/折叠

主页面:Template:Navbox with collapsible groups

当大家族模板内容过多时,可考虑使用多重展开/折叠。可使用{{Navbox with collapsible groups}},更为方便、直观。只使用Navbox也可以实现:

{{Navbox
|name  = Navbox/doc
|title = ……

|list1 = {{Navbox|child
  |navbar = plain
  |title  = ……
  ……
  }}

|list2 = {{Navbox|child
  |navbar = plain
  |title  = ……
  ……
  }}

|list3 = {{Navbox|child
  |navbar = plain
  |title  = ……
  ……
  }}
}}

与其它导航框模板的关系

此导航框模板被特别设计使得能与另外两个姊妹模板协同工作:{{Navbox with columns}}和{{Navbox with collapsible groups}}。所有这三个模板共享常用的参数,以提高一致性与易用性(此类参数在上面的完整参数列表中用作了标记)。最重要的是,所有这三个模板能互相被用作另一个的子模板(通过使用border = child参数,或将第一个参数(无名)指定为child。例如,使用{{Navbox|child …}}{{Navbox with columns|child …}}{{Navbox with collapsible groups|child …}})。

技术细节

运作详情

  • 列表单元格宽度初始被设置为100%。因此,如果你想手动设置分组单元格的宽度,你就需要同时指定liststyle使之有width:auto。如果你想设置分组宽度并使用图片,这取决于你已弄明白在groupstyle、liststyle、imagestyle和imageleftstyle参数中的CSS,以使所有部件都工作正常。以下两行是设置分组宽度的示例:
    groupstyle = width:10em;
    liststyle = width:auto;
  • 相邻的导航框在它们之间仅有一个1px的边框。如果你设置了style / bodystyle的顶端外边距(margin-top)或底端外边距(margin-bottom),那么此特性就不运作了。
  • 外层导航框表格的缺省的左外边距(margin-left)和右外边距(margin-right)被设置为“auto;”。如果你想使用导航框作为一个浮动对象(float),你需要手动设置左外边距和右外边距的值,因为自动外边距(auto margins)会阻止浮动(float)选项。例如,添加下列代码来使用导航框作为一个浮动对象:
    style = width:22em;float:right;margin-left:1em;margin-right:0

参见

  • {{Navbox subgroup}} – 允许在导航框内分组。
  • {{Navbox with columns}} – 允许以栏取代组别/列表。
  • {{Navbox with collapsible groups}} – 另一种变体。
  • {{Nobold}} – 当预设文字样式设定为粗体时,可用来显示无粗体文字的模板。
  • {{W}} ( • ) – 分隔列表项目的圆点。
  • {{nav-s}} – 在标题中显示前任、继任导航模板。