社区文档构建进行中,欢迎编辑。社区答疑群(非官方):717421103
模板:切换显示/文档
本系列模板用以手动显示/隐藏特定字符串,并批量指定字符串及按钮样式。
依赖页面
- 模板:切换显示
- 模板:切换显示/模板
- 模板:切换显示按钮
- 模板:切换显示按钮样式
- 模板:切换显示样式
- 模块:切换显示
- 模块:Arguments
- 模块:SortArgs
- MediaWiki:TextToggleDisplay.js
另外还须在全站CSS和JS内添加以下内容:
- 全站CSS(这里主要为按钮和字符串样式,可自行修改):
.textToggleDisplayButtons input[type=checkbox], input[type=radio] { margin: 0 !important; } .textToggleDisplayButtons { display: inline-flex; flex-wrap: wrap; align-items: baseline; align-content: flex-start; user-select: none; } .textToggleDisplayButtonLabel { display: inline-flex; margin: 5px; padding: 5px; border-radius: 5px; flex: 1 0 auto; box-shadow: 2px 2px 8px #ddd; color: #000; transition: 0.13s ease-in-out all; background-color: #fff; } .textToggleDisplayButtonLabel.cancelButton { line-height: normal; } .textToggleDisplayButtonLabel.on { box-shadow: 2px 2px 8px #FF8C69; } .textToggleDisplayButtonInput { -webkit-appearance: none; -moz-appearance: none; outline: none; width: 20px; height: 20px; background: #ffffff; border: solid 1px #dddddd; border-radius: 50%; position: relative; transition: background 0.1s; } .textToggleDisplayButtonInput:checked { background: #62A7F8; } .textToggleDisplayButtonInput:checked::after { content: ''; height: 6px; width: 10px; border: #fff solid 2px; position: absolute; top: 4px; left: 4px; border-top: none; border-right: none; transform: rotate(-45deg); } .textToggleDisplayButtonLabelText { padding-left: 5px; } .textToggleDisplay.hidden, .textToggleDisplayButtonLabel.cancelButton > input, .textToggleDisplayButtonLabel.on .textToggleDisplayButtonLabelText.off, .textToggleDisplayButtonLabel:not(.on) .textToggleDisplayButtonLabelText.on, .textToggleDisplayButtonsStyle, .textToggleDisplayStyle { display: none !important; }
- 全站JS:
$(function(){ mw.loader.load("//wiki.biligame.com" + mw.util.wikiScript("") + "?title=MediaWiki:TextToggleDisplay.js&action=raw&ctype=text/javascript", "text/javascript"); });
使用示例
详细使用方法
- 注意字符串代号可以用小写英文字母、大写英文字母、汉字等(不被视为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}}