模板:Navbox/doc

维基百科,自由的百科全书
跳转到导航 跳转到搜索

本模板可相对快速地创建一个导航模板,它配备了默认样式,这些样式能对付大多数导航模板。不建议改变默认样式,尽管这是可以的。为了导航模板的标准化,也为了方便使用,强烈建议使用这个模板,或者它的“Navbox系列”姊妹模板中的某一个。

用法[编辑]

请移除置空不用的参数。

{{Navbox
| name       = {{subst:PAGENAME}}{{subst:void|请勿更改此行的任何内容,保存页面时它将自动更改/請勿變更此列的任何內容,儲存頁面時它將自動變更}}
| title      =
| listclass  = hlist
| state      = {{{state<includeonly>|autocollapse</includeonly>}}}

| above      =
| image      =

| group1     =
| list1      =

| group2     =
| list2      =

| group3     =
| list3      =

<!-- ... -->

| below      =
}}<noinclude>
{{navbox documentation}}
<!-- 在此处添加导航模板的分类/在此處添加導航模板的分類 -->
</noinclude>

参数列表[编辑]

Navbox使用小写的参数名称,如上面框中所示。如果省略其他参数,必需的nametitle会创建一个单行方框。

请注意“group1”(等等)是可选的,命名为“above/below”的部分也是可选的。

基本的和最常见的参数如下所示:

  • name–模板的名称(“Template:”后面的部分,注意不是模板的标题)。
  • title–标题栏的文字,像[[化学分支]]。
  • listclass–用于list单元格的CSS样式,常设置为hlist以使用水平列表。如果abovebelow也需使用水平列表则应改用bodyclass参数。
  • state–方框的折叠状态。
  • titlestyle–一个用于标题栏的CSS样式,像:background:gray;
  • groupstyle–一个用于分组单元格的CSS样式,像:background:#eee;
  • above–在group/list区段之上显示的文字,可能是一栏综合的维基链接。
  • image–一个可选的右侧图片,以完整image标签的形式编码:[[File:XX.jpg|90px]]。
  • imageleft–一个可选的左侧图片,编码方式与“image”参数相同。
  • groupn–左侧的文字,在list-n之前(如果group-n被省略,list-n从方框的左侧开始)。
  • listn–列出维基链接的文字,通常是一个无序列表
  • below–在group/list区段之下显示的文字。

下方参数描述章节解释了进一步的细节及限制。其他导航格式则可见表格的布局

参数描述[编辑]

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

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

设置参数[编辑]

name
模板的名称。为了使所有派生模板的“查·论·编”链接正确工作,就必须设置这个参数。你可以输入{{subst:PAGENAME}}作为这个参数的值,这也是个快捷的方法。仅当title被指定,且border参数未被设置且未使用navbar参数禁用导航栏时,name参数才是必需的。
state [autocollapse、expanded、collapsed、plain、off]
  • 默认为autocollapse。如果一个页面上同时有两个或更多可折叠表格,那么该页面上的带autocollapse的导航框在页面加载时会折叠起来。要了解技术上的实现,请参见MediaWiki:Common.js中的mwCollapsibleSetup函数。
  • 如果设置为collapsed,该导航框会在页面加载时折叠起来。
  • 如果设置为plain,该导航框在展开时不带右侧的“隐藏”链接,并且标题会保持居中(通过使用补白来偏移查·论·编链接)。
  • 如果设置为off,该导航框在展开时不带右侧的“隐藏”链接,但是没有补白、标题未必居中。这只是为了高级用法;“plain”选项应能满足大多数需要将“显示”/“隐藏”按钮隐藏起来的应用。
  • 如果设置为除autocollapsecollapsedplainoff之外的其他值(像“expanded”),该导航框会在页面加载时展开,并带有“隐藏”按钮。
若要在独处(未被包含)时显示框体及“隐藏”按钮,而在条目中自动隐藏内容,可以将“expanded”置于<noinclude>标签之内:
  • state = <noinclude>expanded</noinclude>
如果想让编辑者在条目中覆写折叠状态,可以这样做:
在你创建的模板里,像这样加入也命名为“state”的传递参数:
  • | state = {{{state<includeonly>|你想要的初始状态</includeonly>}}}
  • <includeonly>|使模板在本身页面时展开。
  • 示例:{{土星的卫星}}带autocollapse作为其默认的初始状态。条目土卫三十五嵌入包含了它,并且只有一个导航框架。因此该页面的“土星的卫星”导航框显示;条目土卫一有两个导航框,因此该页面的“土星的卫星”导航框折叠。此外也可在条目中使用带state参数的引用形式(如{{土星的卫星|state=collapsed}})覆写其折叠状态。
  • 示例:{{阿拉伯语言}}带expanded作为其默认的初始状态。所有嵌入包含它的条目默认情况下会显示内容,除非条目在嵌入包含它时指定了state = collapsed。
  • 模板{{Collapsible option}}解释了如何使用state参数,可以将其添加到模板定义后的<noinclude>...</noinclude>部分,也可以添加到{{Documentation subpage}}上的说明中。
navbar
如果设置为plain,在标题栏左侧的查·论·编链接不会显示,而且自动应用补白以保持标题居中;设置为off可以移除查·论·编链接,但是不会应用补白(这只是为了高级用法;“plain”选项应能满足大多数不想要导航栏的应用。)强烈建议用户不要隐藏导航栏,为的是使用户编辑该模板更加容易,并且在各页面中保持标准风格。
border
关于将导航框用在另一个导航框内部,欲了解示例及更完整的描述,请参见下面的章节如果设置为childsubgroup,那么该导航框能够被用作一个无边框的子导航框。其边框被隐藏并且在表格的边上没有补白,因此它能很好地放进它的父导航框的list区域。如果设置为none,那么其边框被隐藏并且补白被移除,导航框可用作另一个容器的子项(不要在另一个导航框内使用none选项;同样地,只在另一个导航框内使用childsubgroup选项)。如果设置为其他任意值(默认值),则显示带有1px边框的常规导航框。将边框指定为子导航框样式的另一种方法是这样的(即使用第一个未命名参数而不是border参数):
{{Navbox|child|...}}

单元格[编辑]

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

样式参数[编辑]

一般不建议更改样式,以保持维基百科中模板和网页的一致性,然而还是可以修改。

bodystyle
指定应用到模板主体的CSS样式。此选项应谨慎使用,因为它可以导致视觉上的不一致。举例:
bodystyle = background:#nnnnnn;
bodystyle = width:N [em/%/px or width:auto];
bodystyle = float:[left/right/none];
bodystyle = clear:[right/left/both/none];
basestyle
CSS样式,会同时应用到titleabovebelowgroup单元格,不会应用到list单元格。使编辑者容易改变导航框的基本颜色,而无需在不同部分重复指定。举例:
basestyle = background:lightskyblue;
titlestyle
应用到title的CSS样式,最常用于指定title背景颜色:
titlestyle = background:#nnnnnn;
titlestyle = background:name;
titlestyle = background:none;–没有背景颜色
groupstyle
应用到groupN单元格的CSS样式。该选项覆写应用于整个表格的任何样式。举例:
groupstyle = background:#nnnnnn;
groupstyle = text-align:[left/center/right];
groupstyle = vertical-align:[top/middle/bottom];
groupnstyle
除了groupstyle参数指定的任何样式外,还将CSS样式应用于特定组。此参数仅在绝对必要时才使用,以保持标准化和简单性。举例:
group3style = background: red; color: white;
groupwidth
一个数字和单位,用于指定组单元格的统一宽度,以防列表单元格中的内容太少导致组单元格太宽。无默认值,但是可以通过group(n)style参数覆盖。举例:
groupwidth = 9em
liststyle
应用到所有list的CSS样式。若指定了下面的oddstyleevenstyle参数,则它们优先于本参数。
listnstyle
除了liststyle参数指定的任何样式外,还将CSS样式应用于特定列表。此参数仅在绝对必要时才使用,以保持标准化和简单性。举例:
list5style = background: #ddddff;
listpadding
指定每个list单元格内边距的数字和单位。列表单元格的默认内边距为左侧和右侧0.25em,顶部和底部0。由于复杂的技术原因,简单地设置“liststyle = padding: 0.5em;”(或任何其他内边距设置)将不起作用。举例:
listpadding = 0.5em 0;(设置顶部和底部的内边距为0.5em,左侧和右侧的内边距为0)
listpadding = 0(删除所有内边距)
oddstyle
evenstyle
应用到奇数/偶数编号的样式,会推翻由liststyle定义的样式。默认表现是分别添加条纹状的颜色(白色和灰色)到奇数/偶数行,以提高可读性。除了在非常特别的情况下,这些设置不应更改。
evenodd [swap, even, odd, off]
如果设置为swap,则奇偶行的自动条纹将反转。通常情况下,偶数行的条纹背景为浅灰色;使用该参数时,奇数行将获得灰色条纹,而不是偶数行。设置为evenodd可将所有行设置为该条纹颜色。设置为off可禁用自动条纹。
abovestyle
belowstyle
CSS样式,应用到顶端单元格(通过above参数指定)和底端单元格(通过below参数指定)。常用来设置背景颜色或文本对齐方式:
abovestyle = background:#nnnnnn;
abovestyle = text-align:[left/center/right];
belowstyle = background:#nnnnnn;
belowstyle = text-align:[left/center/right];
imagestyle
imageleftstyle
应用于image/imageleft所在单元格的CSS样式。这些样式只应在特殊情况下使用,通常用于修复设置了组宽度且图像单元格的宽度过大时出现的宽度问题。举例:
imagestyle = width:5em;
默认样式[编辑]

这里列出编辑者最常更改的样式设置。其他更加复杂的样式设置被排除以保持简洁。大多数样式设置在Module:Navbox/styles.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对应group的话会有text-align:left;设置,,否则text-align:center;。由于只有bodystyle有一个垂直对齐(vertical-align)属性,所有其他样式继承其vertical-align:middle;设置。

高级参数[编辑]

bodyclass
aboveclass
groupclass
listclass
belowclass
这可以将CSS类附加到组或列表单元格。listclass最常见的用途是赋予它一个可使列表水平呈现的hlist类。上述所有参数都接受hlist类,但如果多个参数使用了hlist类,请改用|bodyclass=hlist
{{Navbox}}自动添加可被覆盖的nowraplinks类,例如|listclass=wraplinks
innerstyle
一个非常高级的参数,仅用于使用导航框的高级元模板。在内部,导航框使用外部表格绘制边框,然后使用内部表格绘制其他所有内容(title/above/groups/lists/below/image等)。bodystyle参数设置外部表格的样式,内部表格将继承该样式。但在高级情况下(元模板),可能需要直接设置内部表格的样式。该参数提供对该内部表格的访问,以便可以应用样式。使用风险自负。
orphan
在子导航框中设置|orphan=yes以修复奇数/偶数行条纹并删除分类:孤立的子导航框

微格式[编辑]

bodyclass
该参数插入到整个导航框的“class”属性中。
titleclass
该参数插入到导航框标题的“class”属性中。

该模板支持添加微格式信息。这是通过向各种数据单元添加“class”属性来实现的,这些属性指示其中包含哪种信息。例如,要将导航框标记为包含有关人物的hCard信息,请添加以下参数:

| bodyclass = vcard

以及

| titleclass = fn

或(举例):

| title = <span class="fn">[[郭敬明]]</span>作品

……等等。

关于在维基百科使用微格式的详细信息,请参见微格式维基专题。关于微格式的更多基础信息,请参见微格式

表格的布局[编辑]

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


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


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

示例[编辑]

不带图片[编辑]

{{Navbox
|listclass=hlist
|name  = {{subst:PAGENAME}}
|title = [[多媒体超级走廊]](马来西亚){{Clear}}「不带图片」

|group1 = 中心
| list1 = [[赛柏再也]]

|group2 = 区域
| list2 = [[巴生谷]]

|group3 = 主要地标
| list3 = 
* [[双子塔]]
* [[吉隆坡电讯高塔]]
* [[吉隆坡中央车站]]
* [[马来西亚科技园]]
* [[布城]]
* [[赛柏再也]]
* [[吉隆坡国际机场]]

|group4 = 基础设施
| list4 = 
* [[快速铁路]]
* [[吉隆坡-布城高速公路]]
* [[全机场管理系统]]

|group5 = 首要应用
| list5 = 
* [[电子政务]]
* [[大马卡]]  
}}


带图片,不带分组[编辑]

{{Navbox
|listclass=hlist
|name  = {{subst:PAGENAME}}
|title = [[多媒体超级走廊]](马来西亚)
|image = [[File:Flag of Malaysia.svg|80px]]
|list1 = 
* [[双子塔]]
* [[吉隆坡电讯高塔]]
* [[吉隆坡中央车站]]
* [[马来西亚科技园]]
* [[布城]]
* [[赛柏再也]]
* [[吉隆坡国际机场]]
}}


带两张图片,不带分组,多重列表[编辑]

{{Navbox
|listclass=hlist
|name  = {{subst:PAGENAME}}
|title = [[多媒体超级走廊]](马来西亚)
|image = [[File:Flag of Malaysia.svg|80px]]
|imageleft = [[File:Flag of Malaysia.svg|80px]]
|list1 = 
* [[双子塔]]
* [[吉隆坡电讯高塔]]
* [[吉隆坡中央车站]]
|list2 = 
* [[快速铁路]]
* [[吉隆坡-布城高速公路]]
* [[全机场管理系统]]
|list3 = 
* [[电子政务]]
* [[大马卡]] 
|list4 = 
* [[巴生谷]]
}}


带有图片、分组、上方注释、下方注释[编辑]

{{Navbox
|listclass=hlist
|name  = {{subst:PAGENAME}}
|title = [[多媒体超级走廊]](马来西亚)
|image = [[File:Flag of Malaysia.svg|80px]]

|above = 上方文字放在这里

|group1 = 中心
|list1  = 
* [[赛柏再也]]

|group2 = Area
|list2  = 
* [[巴生谷]]

|group3 = 主要地标
|list3  = 
* [[双子塔]]
* [[吉隆坡电讯高塔]]
* [[吉隆坡中央车站]]
* [[马来西亚科技园]]
* [[布城]]
* [[赛柏再也]]
* [[吉隆坡国际机场]]

|group4 = 基础设施
|list4  = 
* [[快速铁路]]
* [[吉隆坡-布城高速公路]]
* [[全机场管理系统]]

|group5 = 首要应用
|list5  = 
* [[电子政务]]
* [[大马卡]] 

|below  = 网站:[http://www.msc.com.my/ www.msc.com.my]
}}

子导航框[编辑]

可以在一个导航框中放置多个导航框。这些可以内联指定,也可以使用嵌套的导航框模板指定,尽管后一种方法可能会导致模板展开后长度非常大。

要内联指定子导航框,请使用{{NavboxV2}},为第一个组增加了一个子组如下:

{{NavboxV2
| name = {{subst:PAGENAME}}
| title = Title

| group1 = [optional]
| list1-border  = child
| list1-type    = vertical
  | list1-title = [optional]

  | list1-group1       = [optional]
  | list1-list1-border = child
  | list1-list1-type   = vertical
    | list1-list1-title = [optional]
    
    | list1-list1-group1 = [optional]
    | list1-list1-list1  = 
    ...子導航框參數...
  ...
...
}}

要使用嵌套模板指定子导航框,可以将参数1或border参数指定为“child”,为第一个组增加了一个子组如下:

{{Navbox
| name = {{subst:PAGENAME}}
| title = Title

| group1 = [optional]
| list1  = {{Navbox|child
   ...子導航框參數...
 }}

...
}}

条纹颜色带会自动交替。如果想去除所有的条纹颜色带,可以在每个Navbox中设置listn-liststyle = background:transparent;

一个导航模板下包含其他导航模板[编辑]

下面的示例中,常规Navbox被用作容器,其list1-border、list2-border和list3-border参数均包含child关键字。由于使用了“child”或“subgroup”关键字,“查·论·编”标题链接会自动隐藏(与常规Navbox不同,子Navbox不要求填写“name”参数),因此无需对每个导航链接使用navbar = plain。代码listN-state = {{#ifeq:{{{selected|}}|ABBREVIATION|expanded|{{{stateN|collapsed}}}}}用于复制{{Navbox with collapsible groups}}的abbrN = ABBREVIATION功能。

与其他导航框模板的关系[编辑]

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

由于嵌入子导航框可能使导航框、引用页面超出模板引用大小限制,故可使用{{NavboxV2}}取代上面三种模板。

技术细节[编辑]

  • ”链接由{{Navbar}}生成。如果您对它们有疑问,请在Template talk:Navbar发起提问。
  • 在分组(groups)与列表(lists)之间的2px宽的边框被绘出,是使用列表单元格的左边框(border-left)属性。因此,如果你想改变模板的背景颜色(例如bodystyle = background:purple;),那么你就需要使这个左边框颜色(border-left-color)与该背景色相适配(即liststyle = border-left-color:purple;)。如果你想有一个边框围绕在每一个列表单元格,那么在分组与列表之间的这个2px的边框会消失;你要拿出自己的解决方案。
  • 相邻的导航框在它们之间有一个1px的边框(除了在IE6中,因其不支持必需的CSS)。如果你设置了style/bodystyle的顶端外边距(top margin)或底顶端外边距(bottom margin),那么此特性就不运作了。
  • 外层导航框表格的默认的左外边距(margin-left)和右外边距(margin-right)被设置为“auto;”。如果你想使用导航框作为一个浮动对象(float),你需要手动设置左外边距和右外边距的值,因为自动外边距(auto margins)会阻止浮动(float)选项。例如,添加下列代码来使用导航框作为一个浮动对象:
    • bodystyle = width: 22em; float: right; margin-left: 1em; margin-right: 0;
  • 此模板调用{{#invoke:Navbox|navbox}}。当在页面上使用导航框模板时,它会使模板引用大小翻倍。当嵌套模板使用子导航框时,可能会导致大小增加四倍或更多。要减少引用大小,除了使用{{NavboxV2}}内联指定子导航框而不是嵌套模板外,您还可以直接调用模块,例如:
{{#invoke:Navbox|navbox
| name = {{subst:PAGENAME}}
| title = Title

| group1 = [optional]
| list1  = {{#invoke:Navbox|navbox|child
   ...子導航框參數...
 }}

...
}}

模板数据[编辑]

以下是该模板的模板数据,适用于可视化编辑器等工具。

Navbox模板数据

<templatedata> { "params": { "image": {}, "Title": {}, "above": {}, "group1": {}, "list1": {}, "group2": {}, "list2": {}, "list3": {}, "group3": {}, "group4": {}, "list4": {}, "below": {}, "imageleft": {}, "name": { "label": "模板的名称" }, "title": { "label": "标题栏的文字" }, "listclass": { "description": "用于list单元格的CSS样式,常设置为hlist以使用水平列表。如果above、below也需使用水平列表则应改用bodyclass参数。" }, "titlestyle": { "description": "一个用于标题栏的CSS样式", "example": "background:gray" } } } </templatedata>

参见[编辑]

追踪分类[编辑]

导航模板比较
可折叠? 标题颜色 图像 组别 样式(主体)
参数
示例
{{Navbox}} navbox 主体左/右侧 {{维基帮助导航}}
{{Navbox with collapsible groups}} navbox 主体左/右侧和/或在每列表中 {{ATI}}
{{Navbox with columns}} navbox 栏左/右侧 {{日本都道府县知事}}
{{NavboxV2}} navbox 以上全部 {{广州地铁车站}}
折叠属性
类别 CSS class Javascript 何时折叠 自定义
初始状态
套叠结构
Collapsible tables mw-collapsible jQuery.makeCollapsible 页面有两块或以上autocollapse模板

重定向[编辑]