今天是2024年12月24日 第52周 星期二

代人,时大变了。

我们生活在大地上,但我们的梦想超越天空。

本頁使用了標題或全文手工轉換

模板:Infobox

出自Akarin
跳至導覽 跳至搜尋
50px 模板文件[檢視] [編輯] [歷史] [清除快取]

本模板為一系列「信息框」模板的元模板,亦即本模板用於構建其他模板。通常不建議在條目中直接使用此模板,但是如有需要,可以在個別「一次性」情況中直接使用。參見Help:信息框以獲取創建通用信息框的進一步方法。

用法

本模板與{{navbox}}的用法相似,但也有一些不同之處。表格中的每一行既可以是頂欄(header),也可以是成對的標籤(label)與資料(data),甚至還可以只是一個數據單元。每行只能有一種狀態,且具有優先級:當你將一行同時定義為頂欄與標籤/數據對,那麼標籤/數據對的定義將會被忽略。

編號

為方便日後更改信息框格式,header和label/data行的編號不需要完全按照1、2、3……的加一順序編寫,可以在中間預留一些行編號不用,可避免將來如要增加新行時要把該行後面的行編號一併更改。

header和label/data行的編號不可以重複,例如不可以同時使用header1和label1/data1,請使用header1、label2/data2(舉例)。

如希望大量移動編號(如為加入新label需將所有之後的label數字加一),可考慮使用模塊:IncrementParams

參數

「查看/討論/編輯/歷史」鏈接

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」才會返回假值,其餘時候則均會返回真值「可選頂欄」。

用例

[[File:200px|class=infobox-image|280px]]
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%;」。

完整模板

(備註:本模板目前最多可以同時處理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              = 
}}

參見