模板:Infobox/doc
40px | 本文件是Template:Infobox的文件子頁面(見template:subjectspace zh頁自身)。 本頁包含用法資訊、分類和其他非原template:subjectspace zh頁面的內容。 |
40px | 本模板已應用於380,000+頁面。 為避免大規模的破壞及不必要的服務器負荷,任何改動均應先在模板的沙盒、測試樣例頁面或您自己的用戶頁測試,經過測試後即可一次性改動本模板。為尊重其他用戶,任何改動在生效前都應先在討論頁討論。 |
30px | 使用Lua語言編寫: |
本模板為一系列「資訊框」模板的元模板,亦即本模板用於構建其他模板。通常不建議在條目中直接使用此模板,但是如有需要,可以在個別「一次性」情況中直接使用。參見Help:資訊框以獲取創建通用資訊框的進一步方法。
目錄
用法
本模板與{{navbox}}的用法相似,但也有一些不同之處。表格中的每一行既可以是頂欄(header),也可以是成對的標籤(label)與資料(data),甚至還可以只是一個資料單元。每行只能有一種狀態,且具有優先級:當你將一行同時定義為頂欄與標籤/資料對,那麼標籤/資料對的定義將會被忽略。
編號
為方便日後更改資訊框格式,header和label/data行的編號不需要完全按照1、2、3……的加一順序編寫,可以在中間預留一些行編號不用,可避免將來如要增加新行時要把該行後面的行編號一併更改。
header和label/data行的編號不可以重複,例如不可以同時使用header1和label1/data1,請使用header1、label2/data2(舉例)。
參數
「檢視/討論/編輯/歷史」連結
- name
- 「檢視/討論/編輯/歷史」連結需要指向模板頁的名稱(name)。你可以填寫{{subst:PAGENAME}}。如果此參數未填,則「檢視/討論/編輯/歷史」連結不會顯示。
標題
(資訊框的其餘部分) |
資訊框內的標題文本 | |
---|---|
(資訊框的其餘部分) |
有兩種方式為一個資訊框填入標題。一種是將標題填在資訊框外,另一種則是填寫在資訊框內。根據需要,你可以選擇其中的一種使用,亦或同時使用這兩種標題,甚至都不使用(儘管我們不推薦這樣做)。
- title
- 填寫在資訊框表格外頂部的標題文本。
- above
- 填寫在資訊框表格內頂部單元的標題文本。
可選項
- subheader
- 在 above 下面的次標題。subheader2是第2個次標題。
- image
- 在模板上部顯示的圖像。請使用完整的圖像語法,例如[[File:example.png|200px]],推薦使用模塊:InfoboxImage插入圖像。圖像的位置默認為居中。
在中文維基百科,一個Infobox最多可使用4個圖像參數:overimage(置頂)、image(=image1)、image2、image3,與英文維基百科的Infobox僅提供image(=image1)、image2不同。 - caption
- 位於圖像下方的說明文本。
overcaption、caption(=caption1)、caption2、caption3分別對應上面4個圖像參數。 - header(n)
- 填入第n行的頂欄文本。
- label(n)
- 填入第n行的標籤文本。
- data(n)
- 填入第n行的資料文本。
- below
- 填寫在資訊框表格底部單元的文本。底部單元一般用來填寫腳註、參見及其他類似的資訊。
可選的CSS風格
- bodystyle
- 應用到資訊框表格全體。
- titlestyle
- 應用到資訊框表格外的標題中。不建議在此處填寫背景顏色(background color),因為該處的文字位於資訊框外。
- abovestyle
- 應用到資訊框表格內頂部單元中。默認的風格為「<source lang="css" inline>font-size:large;</source>」(字號設為大號),因為該單元常被用作標題。如果你希望讓頂部單元以正常字號顯示,只需在該處填寫的內容中包含「<source lang="css" inline>font-size:medium;</source>」。
- imagestyle
- 應用到資訊框的圖像單元中,包括圖像下方的說明文本。但是,出於兼容性與未來修改的考慮,如果你需要設置說明文本的屬性,請使用captionstyle而不要使用imagestyle。
- captionstyle
- 應用到圖像說明文本中。
- headerstyle
- 應用到所有的頂欄單元。
- header(n)style
- 應用到第n行的頂欄單元。
- labelstyle
- 應用到所有的標籤單元。如果你希望讓標籤文字不換行顯示,只需在該處填寫的內容中包含「<source lang="css" inline>white-space:nowrap;</source>」。
- label(n)style
- 應用到第n行的標籤單元。
- datastyle
- 應用到所有的資料單元。
- data(n)style
- 應用到第n行的資料單元。
- belowstyle
- 應用到底部單元中。
微格式
- bodyclass
- 該參數影響資訊框整體的類(class)。
- imageclass
- 該參數影響圖像的類。
- class(n)
- 該參數影響特定行資料單元的類。如果資訊框沒有資料單元,則不會產生作用。
- titleclass
- 該參數影響資訊框外標題的類。
- aboveclass
- 該參數影響資訊框內標題的類。
通過為各個資料單元定義類名,本模板可以支持微格式資訊;此處所說的類名,是根據標準定義的,且可以向機器表明資訊的類型。例如,如果一個資訊框使用了hCard的微格式,要在資訊框內標記此微格式,則填寫以下參數:
|bodyclass = vcard
並為每一個包含了vcard所需資料單元的行添加相應的類參數:
|class1 = fn |class2 = org |class3 = tel
等等。用於顯示資訊框主題的「above」和「title」也可以指定類。
請在Wikipedia:專題/微格式以獲取在維基百科添加微格式資訊的進一步資訊,訪問microformats.org網站亦能獲取更一般性的資訊。
表格域可選項
如果表格的一行只有標籤而沒有資料,那麼該行將不會顯示。這樣可以方便編者創建選填內容的行。要讓某行成為可選項,只需填寫一個默認為空字段的參數即可:
|label5 = 人口 |data5 = {{{population|}}}
這樣的話,如果在條目中不定義「population」參數,則資訊框的那一行不會被顯示。
如果表格的一行填寫的是預設格式內容(即除了參數外,還有其他內容),而又希望讓該行成為可選項的話,你可以通過「#if」語句實現。當參數為空時,令所有的內容均不被呈現。譬如,在下面的例子裏,「#if」會判斷參數「mass」是否不為空,若不為空則顯示它,並跟上「公斤」的後綴:
|label6 = 质量 |data6 = {{#if:{{{mass|}}} |{{{mass}}}千克}}
更多關於#if的用法,參見此處。
你還可以通過相似的方法來讓頂欄也變為可選項。如果你希望頂欄只在其下方的某個或多個資料單元有內容時才顯示,以下的例子可以指導你如何實現:
{{Infobox |name = {{subst:PAGENAME}} |title = 可选顶栏的用例 |header1 = {{#if:{{{item_one|}}}{{{item_two|}}}{{{item_three|}}} |可选顶栏}} |label2 = 项目一 |data2 = {{{item_one|}}} |label3 = 项目二 |data3 = {{{item_two|}}} |label4 = 项目三 |data4 = {{{item_three|}}} }}
這樣,只有在參數「item_one」、「item_two」或「item_three」其中之一被填寫時,「header1」才會被顯示。如果上述三個參數均未被定義,則頂欄不會顯示。
其中的奧妙在於,只有在「item_one」、「item_two」和「item_three」均為空時,「#if」才會返回假值,其餘時候則均會返回真值「可選頂欄」。
用例
200px Caption for example.png | |
獨自定義的頂欄 | |
---|---|
獨自定義的資料 | |
三項均有定義(頂欄) | |
標籤和資料有定義(標籤) | 標籤和資料有定義(資料) |
下方文本 | |
{{Infobox |name = Infobox |bodystyle = |title = 测试信息框 |titlestyle = |image = [[File:example.png|200px]] |imagestyle = |caption = Caption for example.png |captionstyle = |headerstyle = background:#ccf; |labelstyle = background:#ddf; |datastyle = |header1 = 独自定义的顶栏 |label1 = |data1 = |header2 = |label2 = 独自定义的标签 |data2 = |header3 = |label3 = |data3 = 独自定义的数据 |header4 = 三项均有定义(顶栏) |label4 = 三项均有定义(标签) |data4 = 三项均有定义(数据) |header5 = |label5 = 标签和数据有定义(标签) |data5 = 标签和数据有定义(数据) |belowstyle = background:#ddf; |below = 下方文本 }}
注意到,當標籤脫離資料單元單獨定義時,所定義的那一行並未出現在資訊框內;而當頂欄與標籤、資料定義在同一欄時,頂欄將會優先顯示。
在下面的例子中,定義了「bodystyle = width:20em;
」和「labelstyle = width:33%;
」。
標籤1 | 資料1 |
---|---|
標籤2 | 資料2 |
標籤3 | 資料3 |
頂欄4 | |
標籤5 | 資料5:嘰里呱啦稀里嘩啦。 |
下方文本 | |
完整模板
(備註:本模板目前最多可以同時處理80行表格,一般的資訊框模板只會用到前20行的參數,因此此處省略了後60行的參數。需使用時可依此類推。微格式「class」參數亦被省略,因其不常被用到,使用時請自行添加。)
{{Infobox | name = {{subst:PAGENAME}} | child = {{{child|}}} | subbox = {{{subbox|}}} | italic title = {{{italic title|no}}} | bodystyle = | titlestyle = | abovestyle = | subheaderstyle = | title = | above = | subheader = | imagestyle = | captionstyle = | image = | caption = | image2 = | caption2 = | headerstyle = | labelstyle = | datastyle = | header1 = | label1 = | data1 = | header2 = | label2 = | data2 = | header3 = | label3 = | data3 = | header4 = | label4 = | data4 = | header5 = | label5 = | data5 = | header6 = | label6 = | data6 = | header7 = | label7 = | data7 = | header8 = | label8 = | data8 = | header9 = | label9 = | data9 = | header10 = | label10 = | data10 = | belowstyle = | below = }}