Template:信息框
- {{Infobox}}
本模板为一系列信息框模板的元模板,亦即本模板用于构建其他模板。通常不建議在条目中直接使用此模板,但是如有需要,可以在個別「一次性」情況中直接使用。
用法[编辑源代码]
本模板与{{navbox}}的用法相似,但也有一些不同之处。表格中的每一行既可以是顶栏(header),也可以是成对的标签(label)与数据(data),甚至还可以只是一个数据单元。每行只能有一种状态,且具有优先级:当你将一行同时定义为顶栏与标签/数据对,那么标签/数据对的定义将会被忽略。
編號[编辑源代码]
為方便更改信息框格式,header和label/data行的編號不需要完全按照1、2、3……的加一順序編寫,可以在中间添加小数
header和label/data行的編號不可以重複,例如不可以同時使用header1和label1/data1,請使用header1、label2/data2(舉例)。
参数[编辑源代码]
标题[编辑源代码]
- title
- 填写在信息框表格外顶部的标题文本。
可选项[编辑源代码]
- header(n)
- 填入第n行的顶栏文本。
- label(n)
- 填入第n行的标签文本。
- data(n)
- 填入第n行的数据文本。
可选的CSS样式[编辑源代码]
- bodystyle
- 应用到信息框框体。
- titlestyle
- 应用到信息框表格外的标题中。不建议在此处填写背景颜色(background color),因为该处的文字位于信息框外。
- headerstyle
- 应用到所有的顶栏单元。
- header(n)style
- 应用到第n行的顶栏单元。
- labelstyle
- 应用到所有的标签单元。如果你希望让标签文字不换行显示,只需在该处填写的内容中包含“
white-space:nowrap;
”。 - label(n)style
- 应用到第n行的标签单元。
- datastyle
- 应用到所有的数据单元。
- data(n)style
- 应用到第n行的数据单元。
类[编辑源代码]
可以定义样式的元素均可定义类。
为各个数据单元定义类名。
|class1 = fn |class2 = org |class3 = tel
等等。用于显示信息框主题的“title”也可以指定类。
表格域可选项[编辑源代码]
如果表格的一行只有标签而没有数据,那么该行将不会显示。这样可以方便编者创建选填内容的行。要让某行成为可选项,只需填写一个默认为空字段的参数即可:
|label5 = 人口 |data5 = {{{population|}}}
这样的话,如果在条目中不定义“population”参数,则信息框的那一行不会被显示。
如果表格的一行填写的是预设格式内容(即除了参数外,还有其他内容),而又希望让该行成为可选项的话,你可以通过“#if”语句实现。当参数为空时,令所有的内容均不被呈现。譬如,在下面的例子里,“#if”会判断参数“mass”是否不为空,若不为空则显示它,并跟上“千克”的后缀:
|label6 = 质量 |data6 = {{#if:{{{mass|}}} |{{{mass}}}千克}}
你还可以通过相似的方法来让顶栏也变为可选项。如果你希望顶栏只在其下方的某个或多个数据单元有内容时才显示,以下的例子可以指导你如何实现:
{{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”才会返回假值,其余时候则均会返回真值“可选顶栏”。
用例[编辑源代码]
{{Infobox |name = Infobox |bodystyle = |title = 测试信息框 |titlestyle = |headerstyle = background:#ccf; |labelstyle = background:#ddf; |datastyle = |header1 = 独自定义的顶栏 |label1 = |data1 = |header2 = |label2 = 独自定义的标签 |data2 = |header3 = |label3 = |data3 = 独自定义的数据 |header4 = 三项均有定义(顶栏) |label4 = 三项均有定义(标签) |data4 = 三项均有定义(数据) |header5 = |label5 = 标签和数据有定义(标签) |data5 = 标签和数据有定义(数据) }}
注意到,当标签脱离数据单元单独定义时,所定义的那一行并未出现在信息框内;而当顶栏与标签、数据定义在同一栏时,顶栏将会优先显示。
在下面的例子中,定义了“bodystyle = width:20em;
”和“labelstyle = width:33%;
”。
完整模板[编辑源代码]
{{Infobox | name = {{subst:PAGENAME}} | bodystyle = | titlestyle = | titleclass = | title = | 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 = }}