模板:Navbox
本模板允许通过提供一个或多个链接列表相对快速地建立一个「导航模板」。它配备了默认样式,这些样式应能对付大多数导航模板。不建议改变默认样式,尽管这是可以的。为了导航模板的标准化,也为了便于使用,强烈建议使用这个模板,或者它的「Navbox系列」姊妹模板中的某一个。
用法
请移除置空不用的参数。{{Navbox
| state = autocollapse <!--autocollapse、uncollapsed、collapsed、plain、off-->
| name = {{subst:PAGENAME}}
| title =
| image =
| above =
| abovestyle =
| listclass = hlist
| group1 =
| list1 =
| group2 =
| list2 =
| group3 =
| list3 =
| group4 =
| list4 =
| group5 =
| list5 =
| group6 =
| list6 =
| group7 =
| list7 =
| group8 =
| list8 =
| group9 =
| list9 =
| group10 =
| list10 =
| group11 =
| list11 =
| group12 =
| list12 =
| group13 =
| list13 =
| group14 =
| list14 =
| group15 =
| list15 =
| group16 =
| list16 =
| group17 =
| list17 =
| group18 =
| list18 =
| group19 =
| list19 =
| group20 =
| list20 =
| belowstyle =
| below =
}}
参数列表
| ||||||||||||||||||||||||
若省略其他参数,必需的name和title会创建一个单行方框。
请注意groupn与above/below是可选的。
基本的和最常见的参数如下所示(参见下方查看完整的列表):
name- 模板的页面名称(建议填写「{{subst:PAGENAME}}」)。title- 标题栏的文字。state - autocollapse、uncollapsed、collapsed:方框的折迭状态,其中「autocollapse」会自动隐藏被堆迭的多个导航框。titlestyle- 一个用于标题栏的CSS样式,像background:graygroupstyle- 一个用于分组单元格的CSS样式,像background:#eeeimage- 一个可选的右侧图片(以完整的image标签的形式编码:[[File:XX.jpg|90px]])。imageleft- 一个可选的左侧图片(编码方式同上)。above- 在group/list区段之上显示的文字(可能是一栏综合的维基链接)。groupn- 左侧的文字,在list-n之前(若group-n被省略,list-n从方框的左侧开始)。listn- 列出维基链接的文字,通常以 • 分隔开。below- 在group/list区段之下显示的可选文字。
进一步的细节,以及复杂的约束,在下方#参数描述章节作了解释。参见其他的一些替代导航格式:#表格布局。
参数描述
下面是用于{{Navbox}}的参数的一个完整清单。在大多数情况下,只要有参数name , title , list1就可以了,尽管#子导航框甚至不需要设置那些参数。
{{Navbox}}与它的姊妹模板{{Navbox with columns}}、{{Navbox with collapsible groups}}共用很多常用的参数名称,以提高一致性与易用性。带一个†标记的参数适用于所有这三个主模板。
设置参数
- name†
- 模板的名称。为了在所有使用了所生成模板的页面上,「阅 • 讨 • 编」链接都能正确地工作,就需要设置这个参数。你可以输入
{{subst:PAGENAME}}作为这个参数的值,这也是个快捷的方法。此参数是必需的。
- state† [
autocollapse、uncollapsed、collapsed、plain、off]- 默认为
autocollapse。若在使用了其他可折迭表格的同一个页面上有两个或更多表格,那么该页面上的带autocollapse的导航框一开始就会折迭起来。否则,该导航框会被展开。 - 若设置为
collapsed,该导航框总会在开始时以折迭起来的状态展现。 - 若设置为
plain,该导航框总会在被展开时不带右侧的「隐藏」链接,并且标题会保持居中(通过使用补白来偏移查 • 论 • 编 • 历链接)。 - 若设置为
off,该导航框总会在被展开时不带右侧的「隐藏」链接,但是没有补白会被用来保持标题居中。这只是为了高级用法;「plain」选项应能满足大多数需要将「显示」/「隐藏」按钮隐藏起来的应用。 - 若设置为除
autocollapse , collapsed , plain 或 off之外的其他值(像「uncollapsed」),该导航框总会在开始时以展开的状态出现,但是带有「隐藏」按钮。
- 默认为
- 若要在独处(未被包含)时显示框体,而在一个条目中时自动隐藏内容,可以将「uncollapsed」置于<noinclude>标签之内:
state =<noinclude>uncollapsed</noinclude>- 如此设置会强制框体在单独出现时(甚至是后面有其他导航框时)展开,显示「隐藏」按钮,而当被堆迭在一个条目中时自动折迭框体。
- 很多时候,对于一个导航框,编辑者会想要一个默认的初始状态,并且在条目中它可以被覆写。要做到这一点,这里有个窍门:
- 在你的居间模板里,创建一个参数也命名为「state」作为一个传递,像这样:
| state = {{{state<includeonly>|初始状态</includeonly>}}}
- navbar†
- 默认为
Navbar。若设置为plain,在标题栏左侧的阅 • 讨 • 编链接不会显示出来,而且补白会被自动应用以保持标题居中。设置为off可以移除阅 • 讨 • 编链接,但是不会应用补白(这只是为了高级用法;「plain」选项应能满足大多数不想要导航栏的应用。)强烈建议使用者不要隐藏导航栏,为的是使用户编辑该模板更加容易,并且可以贯穿各个页面都有一个标准的风格。 - border†
- 关于将导航框用在另一个导航框内部,欲了解示例及更完整的描述,请参见下面的章节。若设置为
child或subgroup,那么该导航框能够被用作一个无边框的子导航框。其边框被隐藏并且在表格的边上没有补白,因此它能很好地放进它的父导航框的list区域。若设置为none,那么{{Navbox|child|...}}
单元格
- title†
- 显示在表格顶端一行居中位置的文字。它通常是该模板的主题,也就是主体内容的一个简要描述。这应该是单独的一行,但是若需要第二行,请使用
<center>来保证正确的居中。本参数从技术上来说不是必需的,但是使用{{Navbox}}而不带标题是相当没有意义的。 - groupn†
- (即group1、group2等等)若被指定,文字会显示在位于listn左侧的抬头单元格中。若被省略,listn占用表格的全部宽度。
- listn†
- (即list1、list2等等)该模板的主体,通常为一栏链接。格式为内联;然而,若整个列表被装入
<div></div>之内,文字能够被输入到不同的行中。最少需要一个list参数;每个附加的list被显示在一个单独的表格行中。每个listn可能在其前面有一个相对应的groupn参数,若提供了的话(参见下方)。 - image†
- 一张图片,会显示在标题(title)之下、主体(group/list)之右侧的一个单元格中。为使图片能正确地显示,必须指定list1参数。image参数接受标准的维基代码来显示图片,即:
image = [[File:Example.jpg|90px]]
- imageleft†
- 一张图片,会显示在标题(title)之下、主体(list)之左侧的一个单元格中。为使图片能正确显示,必须指定list1参数,而且不能指定分组(group)。imageleft参数接受标准的维基代码来显示图片,即:
imageleft = [[File:Example.jpg|90px]]
- above†
- 一个全宽度单元格,显示在标题栏与第一个group/list之间,也就是位于该模板的主体(group、list和image)之上。在一个不带图片的模板中,above与不带group1参数的list1参数以同样的方式运作。
- below†
- 一个全宽度单元格,显示在该模板主体(group、list和image)的下方。在一个不带图片的模板中,below与该模板最后面的不带groupn参数的listn参数以同样的方式运作。
样式参数
一般不建议更改样式,以保持中文维基百科中模板和网页的一致性。然而,修改样式的选项还是有的。
- style†
- 指定应用到模板主体的CSS样式。bodystyle参数也有下面举例的同样效果,并能被用来代替这个style参数。此选项应谨慎使用,因为它可以导致视觉上的不一致。举例:
style = background:...;style = width:...;style = float:[left/right/none];style = clear:[right/left/both/none];
- basestyle†
- CSS样式,会同时应用到title、above、below和group单元格。该样式不会应用到list单元格。这就比较方便了,使得编辑者很容易改变导航框的基本颜色而无需重复去为该导航框的不同部分指定样式。举例:
basestyle = background:lightskyblue - titlestyle†
- 应用到title的CSS样式,最常见的有导航栏的背景颜色:
titlestyle = background:#nnnnnn;titlestyle = background:name;
- groupstyle†
- 应用到groupN单元格的CSS样式。该选项覆写应用于整个表格的任何样式。举例:
groupstyle = background:#nnnnnn;groupstyle = text-align:[left/center/right];groupstyle = vertical-align:[top/middle/bottom];
- liststyle†
- 应用到所有list的CSS样式。若指定了下面的oddstyle和evenstyle参数,则它们的优先级高于本参数。
- oddstyle
- evenstyle
- 应用到奇数/偶数编号的列表。会推翻由liststyle定义的样式。默认的表现是分别添加条纹状的颜色(白色和灰色)到奇数/偶数行,以提高可读性。除了在非常特别的情况下,这些设置不应更改。
- abovestyle†
- belowstyle†
- CSS样式,应用到顶端单元格(通过above参数指定)和底端单元格(通过below参数指定)。典型地被用来设置背景颜色或文本对齐方式:
abovestyle = background:...;abovestyle = text-align:[left/center/right];
默认样式
这里列出的样式设置是使用导航框的编辑者最经常更改的那些设置。其他更加复杂的样式设置被排除在这个列表之外,以保持它简单。大多数样式是在MediaWiki:Common.css中设置。
bodystyle = background:#fdfdfd;width:100%; vertical-align:middletitlestyle = background:#ccf;padding:0 1em;text-align:centerabovestyle = background:#ddf;padding:0 1em;text-align:centerbelowstyle = background:#ddf;padding:0 1em;text-align:centergroupstyle = background:#ddf;padding:0 1em;text-align:rightliststyle = background:transparent;text-align:left/centeroddstyle = background:transparentevenstyle = background:#f7f7f7
由于liststyle和oddstyle是透明的,奇数列表有bodystyle的颜色,其默认值是#fdfdfd(白色带有少许灰色)。一个list有text-align:left设定,若它有一个group的话;否则,它有text-align:center设定。由于只有bodystyle有一个垂直对齐(vertical-align)属性,所 有其他样式继承其vertical-align:middle设定。
高级参数
- titlegroup
- titlegroupstyle
- innerstyle
表格布局
由{{Navbox}}不带image、above和below参数生成的表格(添加了灰色的列表背景色仅仅是为了演示):
| ||||||||||||||
由{{Navbox}}带有image、above和below参数生成的表格(添加了灰色的列表背景色仅仅是为了演示):
| ||||||||||||||||||||||||
由{{Navbox}}带有image、imageleft、lists,且不带groups、above、below生成的表格(添加了灰色的列表背景色仅仅是为了演示):
| ||||||||||||||||||
与其他导航框模板的关系
此导航框模板被特别设计使得能与另外两个姊妹模板协同工作:{{Navbox with columns}}和{{Navbox with collapsible groups}}。所有这三个模板共用常用的参数,以提高一致性与易用性(此类参数在上面的完整参数列表中用†作了标记)。最重要的是,所有这三个模板能互相被用作另一个的子模板(通过使用border = child参数,或将第一个参数(无名)指定为child。例如,使用{{Navbox|child ...}} , {{Navbox with columns|child ...}} 或 {{Navbox with collapsible groups|child ...}})。
技术细节
- 此模板为其大部分外观使用CSS类,因此它完全可以更换皮肤。
- 欲了解更多技术细节请参见其讨论页、MediaWiki:Common.css中的CSS类。
运作详情
- 列表单元格宽度初始被设置为100%。因此,若你想手动设置分组单元格的宽度,你就需要同时指定liststyle使之有width:auto。若你想设置分组宽度并使用图片,这取决于你已弄明白在groupstyle、liststyle、imagestyle和imageleftstyle参数中的CSS,以使所有部件都工作正常。以下两行是设置分组宽度的示例:
groupstyle = width:10emliststyle = width:auto
- 相邻的导航框在它们之间仅有一个1px的边框(除了在IE6中,因其不支持必需的CSS)。若你设置了
style/bodystyle的顶端外边距(top margin)或底顶端外边距(bottom margin),那么此特性就不运作了。 - 外层导航框表格的默认的左外边距(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}} – 另一种变体。
- • – 分隔列表项目的圆点。