模板:内容切换
本系列模板用以手动显示/隐藏特定字符串,并批量指定字符串及按钮样式。
用法
- 注意字符串代号可以用小写英文字母、大写英文字母、汉字等(不被视为wikitext):
- 不得包含
'
、"
、<
、>
、\
、/
、|
、$
,不得以@
开头,否则将被无视; - 大小写、繁简敏感,请牢记。
- {{内容切换|参数1|参数2|参数3}}:
- 必需,用以指定需要手动切换的字符串。本模板没有数量限制。
- 参数
1
:字符串代号; - 参数
2
:字符串内容(wikitext格式);- 在参数3未指定为块元素名时参数2不可以填写需要换行的wikitext,反之当参数3指定为块元素名时参数2没有任何限制(参见#需要换行的wikitext)。
- 参数
3
:可选,用以指定字符串根元素的标签名(默认为span
)(参见#根元素标签)。
- 参数
- {{内容切换/模板|@=【模板名称】|@tag=【根元素标签】|【参数1】=|【参数2】@【字符串代号1】=|…}}:
- 必需,是{{内容切换}}的包装(即本模板是{{内容切换}}的特殊实现,与之等价),用以指定需要手动切换一个模板的某个/些参数的字符串,以减少代码书写量,提高可阅读性。本模板没有数量限制。
- 参数格式中
【】
内为用户填写内容(注意填写时不要加【】,除非代号与文本内确有此内容)。 - 参数
@
:调用的目标模板的名称,不需要加模板:
名字空间前缀; - 参数
@tag
:可选,同{{内容切换}}的参数3
,用以指定字符串根元素的标签名(默认为span
)(参见#根元素标签); - 格式
参数
:调用的目标模板的参数的名称;- 参数名称与直接调动目标模板所需要书写的参数名称基本一致。唯一区别是,目标模板参数名称中的每个
@
字符都需要写成2个(@@
),以免和表示参数名称与字符串代号间隔的1个@
字符混淆;
- 参数名称与直接调动目标模板所需要书写的参数名称基本一致。唯一区别是,目标模板参数名称中的每个
- 格式
字符串代号
:字符串代号;- 若不填写格式
字符串代号
,这个参数的值将会作为所有字符串代号的默认值;
- 若不填写格式
- 参数格式中
- 注:{{内容切换/模板}}实际上多次调用了目标模板,而非仅对参数部分进行处理。若目标模板代码中包含计数器等(设计时未考虑重复调用情况),需要注意对其状态进行重置。
- {{内容切换-按钮|@default=|@radio=|@reverse=|@forceNoCancel=|@toggleClass=|【字符串代号1】=【按钮文本1】|…}}:
- 必需,用以显示切换按钮,本模板没有数量限制。若一个本模板中有多个“字符串代号”,则这些“字符串代号”对应的按钮将并排显示。
- 参数格式为
|【字符串代号】=【按钮文本】
,其中【】
内为用户填写内容(注意填写时不要加【】,除非代号与文本内确有此内容)。
【按钮文本】为wikitext格式,但其内的点击事件不会被触发(即链接、缩略图等无法点开)。- 可选格式如下(仅
@on
和@off
会被识别为参数,“@+其他任意字符”则会被识别为“字符串代号”的一部分):|【字符串代号】@on=【按钮文本】
:指定字符串代号对应按钮激活时显示的按钮文本(普通模式下按钮复选框/单选框勾选时显示,反转模式下按钮复选框/单选框未勾选时显示);|【字符串代号】@off=【按钮文本】
:指定字符串代号对应按钮未激活时显示的按钮文本(普通模式下按钮复选框/单选框未勾选时显示,反转模式下按钮复选框/单选框勾选时显示)。
- 另外,如果
【字符串代号】
包含$
,那么该按钮绑定的实际代号为【字符串代号】
按$
分割后的数组,通过此方法可以将单一按钮绑定到多个元素上。
- 可选格式如下(仅
- 另外,可以选择配置以下选项:
@default
:可选,用以指定默认激活的按钮(此处的参数值为该按钮对应的字符串代号);@radio
:可选,参数值不为空时将会使该模板内的按钮变为单选框,一次只能显示一种字符串;- 使用该参数时单选按钮旁边会显示“取消选择”按钮。
@reverse
:可选,参数值不为空时将会使该模板内的按钮变为反转模式:没有勾选的将会显示,勾选的将会隐藏;@forceNoCancel
:可选,参数值不为空且@radio
和@default
均不为空时强制隐藏取消选择单选框。@toggleClass
:可选,参数值不为空时可以指定内容切换具体切换的 class 名称;此 class 默认为hidden
,所以只要改成hidden
以外的 class 名称就可以不隐藏内容切换的内容、而是改为利用 CSS 样式表应用不同的显示效果。
- 参数格式为
- 注:{{内容切换}}与{{内容切换-按钮}}的位置决定了字符串和按钮的位置关系,例如编辑文档时{{内容切换}}在{{内容切换-按钮}}的前面,则显示内容时字符串在按钮的前面,反之亦然。
- {{内容切换样式|【字符串代号1】=【样式文本1】|…}}:
- 可选,用以批量指定某些需要手动切换的字符串的样式,会同时影响按钮内文字的样式(普通模式下按钮复选框/单选框勾选时激活,反转模式下按钮复选框/单选框未勾选时激活)。本模板没有数量限制
但是一个就够用了。- 参数格式为
|【字符串代号】=【样式文本】
,其中【】
内为用户填写内容(注意填写时不要加【】,除非代号与文本内确有此内容)。
- 参数格式为
- {{内容切换-按钮样式}}:
- 可选,用以指定按钮样式。本模板没有数量限制
但是一个就够用了。- 参数格式如下:
|【字符串代号】=【样式文本】
:指定字符串代号对应按钮的通用样式;|【字符串代号】@on=【样式文本】
:指定字符串代号对应按钮激活时的样式(普通模式下按钮复选框/单选框勾选时激活,反转模式下按钮复选框/单选框未勾选时激活);|【字符串代号】@off=【样式文本】
:指定字符串代号对应按钮未激活时的样式(普通模式下按钮复选框/单选框未勾选时激活,反转模式下按钮复选框/单选框勾选时激活);|【字符串代号】@input=【样式文本】
:指定单选框“圆点”和复选框“对勾背景”的样式(仅在显示这些内容的情况下生效);【字符串代号】
为@cancel
时将指定“取消选择”按钮的样式(所有“取消选择”按钮都使用该样式);@cancel@on
指定“取消选择”按钮未激活时的样式;@cancel@off
指定“取消选择”按钮激活时的样式;@cancel=display:none
可以隐藏“取消选择”按钮;
- 参数格式如下:
- 其中,
on
和off
样式优先于通用样式,仅在未指定on
和off
样式的情况下才会使用通用样式。
- 注:{{内容切换样式}}和{{内容切换-按钮样式}}都可以指定按钮文本样式。当二者同时存在时,{{内容切换-按钮样式}}优先级高于{{内容切换样式}}。
根元素标签
- 本段文字说明的是{{内容切换}}的
参数3
及{{内容切换/模板}}的参数@tag
。 -
- 该参数的参数值可选
div
、span
等,默认值为span
。- 当参数值为
span
时,字符串根元素为行内元素。需要换行的模板在此情况下无法隐藏,将一直显示; - 当参数值为
div
时,字符串根元素为块状元素。需要换行的模板在此情况下可以隐藏,随按钮的激活与否保持显示/隐藏状态; - 不需要换行的模板不受参数值的限制,但会根据字符串根元素的类型而改变版式。
- 当参数值为
- 该参数的参数值可选
- 示例:
- 需要换行的模板
span
时(此时本模板无法生效):{{内容切换-按钮 |span1=显示gifts }}{{内容切换|span1| {{bilibiliVideo|id=BV1nC4y147iy|page=1|width=600|height=421|autoplay=yes}}<nowiki/> |span}}
div
时:{{内容切换-按钮 |div1=显示gifts }}{{内容切换|div1| {{bilibiliVideo|id=BV1nC4y147iy|page=1|width=600|height=421|autoplay=yes}}<nowiki/> |div}}
- 不需要换行的模板
span
时:{{内容切换-按钮 |span2=显示丘比 }}{{内容切换|span2| {{颜文字|丘比}}<nowiki/> |span}}
div
时:{{内容切换-按钮 |div2=显示丘比 }}{{内容切换|div2| {{颜文字|丘比}}<nowiki/> |div}}
需要换行的wikitext
- 添加表格
- 注:由于表格wikitext较为恶心,里面所有带有
|
的格式符号都需要进行替换。 - 当然,任何时候
=
都需要替换。
{{内容切换-按钮|data1=表格|@default=data1}}
{{内容切换|data1|<nowiki/>
{{(!}} class{{=}}"wikitable sortable"
{{!-}}
! A
! B
{{!-}}
{{!}} 1
{{!}} 2
{{!-}}
{{!}} 3
{{!}} 4
{{!)}}|div}}{{内容切换样式|data1=color: red; font-weight: 700;}}
- 添加其他需要换行的wikitext
- 注:此处的
<nowiki/>
与wikitext之间应换行,否则wikitext会失效。
{{内容切换-按钮|data2=列表|@default=data2}} {{内容切换|data2|<nowiki/> * A * B *# C *# D # 3 ##8 ; E : F |div}}{{内容切换-按钮样式|data2=border-color:red}} 列表列表