跳至內容

模板:Navbox/doc

維基教科書,自由的教學讀本

Template:Navbox suite 本模板允許通過提供一個或多個連結列表相對快速地建立一個導航模板。它配備了預設樣式,這些樣式應能對付大多數導航模板。不建議改變預設樣式,儘管這是可以的。為了導航模板的標準化,也為了便於使用,強烈建議使用這個模板,或者它的「Navbox系列」姊妹模板中的某一個。

用法

[編輯]

請移除置空不用的參數。

{{Navbox
|state = autocollapse <!--autocollapse、uncollapsed、collapsed、plain、off-->
|name  ={{subst:PAGENAME}}
|title =
|image =
|above =
|abovestyle = 
|listclass = hlist

|group1 =
| list1 =

|group2 =
| list2 = 

……

|group20 = 
| list20 = 

|belowstyle =
|below= 
}}

參數列表

[編輯]

Navbox使用小寫的參數名稱,如上面框中所示。如果省略其他參數,必需的nametitle會創建一個單行方框。

請注意「group1」(等等)是可選的,命名為「above/below」的部分也是可選的。

基本的和最常見的參數如下所示(參見下方查看完整的列表):

name - 模板的名稱(「Template:」後面的部分,注意不是模板的標題)。
title - 標題欄的文字,像[[化学分支]]。
state - autocollapse、uncollapsed、collapsed:方框的摺疊狀態,其中「autocollapse」會自動隱藏被堆疊的多個導航框。
titlestyle - 一個用於標題欄的CSS樣式,像:background:gray;
groupstyle - 一個用於分組單元格的CSS樣式,像:background:#eee;
image - 一個可選的置於右側的圖片(以完整的image標籤的形式編碼:[[File:XX.jpg|90px]])。
imageleft - 一個可選的置於左側的圖片(編碼方式與「image」參數相同)。
above - 在group/list區段之上顯示的文字(可能是一欄綜合的維基連結)。
groupn - 左側的文字,在list-n之前(如果group-n被省略,list-n從方框的左側開始)。
listn - 列出維基連結的文字,通常以圓點符號模板分隔開來,像:[[A]]{{·}} [[B]]
below - 在group/list區段之下顯示的可選文字。

進一步的細節,以及複雜的約束,在下方參數描述章節作了解釋。參見其他的一些替代導航格式:表格布局

參數描述

[編輯]

下面是用於{{Navbox}}的參數的一個完整清單。在大多數情況下,只要有參數nametitlelist1就可以了,儘管子導航框甚至不需要設置那些參數。

{{Navbox}}與它的姊妹模板{{Navbox with columns}}、{{Navbox with collapsible groups}}共用很多常用的參數名稱,以提高一致性與易用性。帶一個標記的參數適用於所有這三個主模板。

設置參數

[編輯]
name
模板的名稱。為了在所有使用了所生成模板的頁面上,「檢 · 論 · 編」連結都能正確地工作,就需要設置這個參數。你可以輸入{{subst:PAGENAME}}作為這個參數的值,這也是個快捷的方法。此參數是必需的。
state [autocollapse、uncollapsed、collapsed、plain、off]
  • 預設為autocollapse。如果在使用了其他可摺疊表格的同一個頁面上有兩個或更多表格,那麼該頁面上的帶autocollapse的導航框一開始就會摺疊起來。否則,該導航框會被展開。要了解技術上的實現,請參見MediaWiki:Common.js
  • 如果設置為collapsed,該導航框總會在開始時以摺疊起來的狀態展現。
  • 如果設置為plain,該導航框總會在被展開時不帶右側的「隱藏」連結,並且標題會保持居中(通過使用補白來偏移查 • 論 • 編 • 歷連結)。
  • 如果設置為off,該導航框總會在被展開時不帶右側的「隱藏」連結,但是沒有補白會被用來保持標題居中。這只是為了高級用法;「plain」選項應能滿足大多數需要將「顯示」/「隱藏」按鈕隱藏起來的應用。
  • 如果設置為除autocollapsecollapsedplainoff之外的其他值(像「uncollapsed」),該導航框總會在開始時以展開的狀態出現,但是帶有「隱藏」按鈕。
若要在獨處(未被包含)時顯示框體,而在一個條目中時自動隱藏內容,可以將「uncollapsed」置於標籤之內:
  • state = <noinclude>uncollapsed</noinclude>
  • 如此設置會強制框體在單獨出現時(甚至是後面有其他導航框時)展開,顯示「隱藏」按鈕,而當被堆疊在一個條目中時自動摺疊框體。
很多時候,對於一個導航框,編輯者會想要一個預設的初始狀態,並且在條目中它可以被覆寫。要做到這一點,這裡有個竅門:
在你的居間模板里,創建一個參數也命名為「state」作為一個傳遞,像這樣:
  • | state = {{{state<includeonly>|你想要的初始状态</includeonly>}}}
  • The <includeonly>|會使得當查看模板頁面本身時,模板會被展開。
  • 示例:{{土星的衛星}}帶autocollapse作為其預設的初始狀態。條目土衛三十五嵌入包含了它,並且只有一個導航框架。因此該頁面的「土星的衛星」導航框顯示了出來。條目土衛一有兩個導航框。因此該頁面的「土星的衛星」導航框摺疊了起來。另外,也可以在條目中使用帶state參數的引用形式(如{{土星的卫星|state=collapsed}})來覆寫其摺疊狀態。
  • 示例:{{阿拉伯語言}}帶expanded作為其預設的初始狀態。所有嵌入包含它的條目預設情況下會顯示其內容,除非有一個假定的條目在嵌入包含它時指定了state = collapsed。
navbar
預設為Navbar。如果設置為plain,在標題欄左側的查 • 論 • 編連結不會顯示出來,而且補白會被自動應用以保持標題居中。設置為off可以移除查 • 論 • 編連結,但是不會應用補白(這只是為了高級用法;「plain」選項應能滿足大多數不想要導航欄的應用。)強烈建議使用者不要隱藏導航欄,為的是使用戶編輯該模板更加容易,並且可以貫穿各個頁面都有一個標準的風格。

單元格

[編輯]
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]]
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
應用到groupN單元格的CSS樣式。該選項覆寫應用於整個表格的任何樣式。舉例:
groupstyle = background:#nnnnnn;
groupstyle = text-align:[left/center/right];
groupstyle = vertical-align:[top/middle/bottom];
liststyle
應用到所有list的CSS樣式。若指定了下面的oddstyleevenstyle參數,則它們的優先級高於本參數。
oddstyle
evenstyle
應用到奇數/偶數編號的列表。會推翻由liststyle定義的樣式。預設的表現是分別添加條紋狀的顏色(白色和灰色)到奇數/偶數行,以提高可讀性。除了在非常特別的情況下,這些設置不應更改。
abovestyle
belowstyle
CSS樣式,應用到頂端單元格(通過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
|listclass=hlist
|name  = Navbox/doc
|title = [[多媒体超级走廊]](马来西亚){{brClear}}''不带图片''

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

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

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

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

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


帶圖片,不帶分組

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


帶兩張圖片,不帶分組,多重列表

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


帶有圖片、分組、上方注釋、下方注釋

[編輯]
{{Navbox
|listclass=hlist
|name  = Navbox/doc
|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]
}}

子導航框

[編輯]

要在一個邊框中放置多個導航框,可以使用border參數,或通過將第一個參數指定為「child」來實現。基本用法如下(為第一個組增加了一個子組):

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

| group1 = [optional]
| list1  = {{Navbox|child
   ...child navbox parameters...
 }}

...
}}

子分組示例

[編輯]
主頁面:Template:Navbox subgroup

下面的示例展示了子分組的用法。{{Navbox subgroup}}是推薦的用法,但通過在{{Navbox}}加入border = child或將第一個參數(無名)設為child也可以達到同樣的效果。「evenodd」參數用來調整某些子分組中條紋狀顏色帶的分布,以確保顏色帶的排列正確。如果想去除所有的條紋顏色帶,可以在每個Navbox中設置liststyle = background:transparent;

一個導航模板下包含其他導航模板

[編輯]
主頁面:Template:Navbox with collapsible groups

下面的示例中,常規Navbox被用作容器,其list1、list2和list3參數各包含另外的Navbox(設置了1 = child)。「檢·論·編」標題連結各通過navbar = plain或直接不填寫「name」參數隱藏。(與常規Navbox不同,子Navbox不要求填寫「name」參數。)

與其他導航框模板的關係

[編輯]

此導航框模板被特別設計使得能與另外兩個姊妹模板協同工作:{{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的邊框(除了在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:0em;

參見

[編輯]

Template:Navigational templates