< 有兽档案馆:格式手册(重定向自有兽档案馆:TLCSSG)
模板样式(TemplateStyles)是允许非管理员用户写入和管理模板的CSS样式的功能。本页规范了模板样式的使用。
规范
基本规范
- 模板样式页应和特定模板或某系列模板有关,且应被特定模板或某一系列模板使用。
- 未被任何模板或者其他页面使用的模板样式页应快速删除。
- 样式必须只会影响到关联模板或与此模板有关的其他元素的输出。如果添加模板到页面影响不相关部分的显示样式,可能会导致页面显示混乱。允许通过模板样式引入与页面其他部分不冲突的类,并在页面内的适当位置使用具有此类的元素,但这种情况应当谨慎。
命名规范
- 模板样式页应置于特定模板的子页面,并以
style
或style-功能
命名。- 例如应使用
Template:MyTemplate/styles.css
或Template:MyTemplate/styles-foo.css
而不是Template:Styles.css
或Template:Foo.css
,以这方便辨识及编辑样式页。
- 例如应使用
- 如需要单独的模板样式页(例如共享的CSS)而不作为特定模板的子页面,需先取得共识,例如
Template:Hello.css
。 - 进行模板样式测试的沙盒应置于子页面,如
Template:Foo/sandbox.css
。
内容规范
- CSS中定义的类应以模板名称或者能描述该模板名称的词语作为前缀。
- 例如,不应使用
.row
,应使用.myTemplate-row
; tr
应使用.myTemplate tr
来定义规则。- 说明:模板名称基本上不会重复,以关联模板名称作为前缀命名可以避免引用到条目时有CSS规则名称冲突问题。
- 例如,不应使用
- 样式页使用的选择器和类别名称应唯一,并以ASCII字元为主,避免使用中文。
- 如需对
body
等外部元素进行选择,需明确指明body
,如body.skin-gongbi .myTemplate-specific
而非.skin-gongbi .myTemplate-specific
,以免被TemplateStyles插件过滤。 - 模板样式使用的图片(
background-image
、border-image
等)只能使用无需署名的图片(例如公有领域),不能使用合理使用的图片,即便用于条目时有符合合理使用也不能。内嵌图片如linear-gradient
不在此限。- 说明:一般使用图片的情况下,能够点击图片连到档案说明页查看姓名标示或版权协议。但使用在背景的图片将无法这么做。
- 不建议使用
!important
。使用!important
将导致用户自定义CSS难以甚至无法覆盖模板样式。 - 不建议使用ID。HTML ID应该在页面上唯一,但模板通常不会在一个页面只被引用一次,即使是单一用途的模板也可能有无法预期的使用方式,因此推荐使用类别而不是ID来作为样式选择器。
其他规范
- 移动模板时也应移动相应的模板样式页,
- 例如
Template:1
移动到Template:2
那么若有Template:1/2.css
也要移动到Template:2/2.css
- 例如
- 样式页的保护层级应该和模板一致。
- 说明:如果模板是高风险模板,那么样式页也会是高风险的。
- 如果模板不是高风险模板而没有被保护,那么破坏模板本身就能够造成混乱。
- 如果样式页的保护层级比模板高,因为模板页能够编辑,将会促使编辑者于在模板页添加行内样式。
- 说明:如果模板是高风险模板,那么样式页也会是高风险的。
- 禁止在签名中加入任何模板样式。
- 说明:当在签名中使用模板样式时,当模板样式变更时可能会改变之前或已存盘的签名。