模板: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模板

重新導向[編輯]