求闻百科:模板样式

本页使用了标题或全文手工转换,现处于中国大陆简体模式
求闻百科,共笔求闻
Pomelo留言 | 贡献2023年1月23日 (一) 15:20的版本 ($section (Edit via IPE))
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

模板样式(TemplateStyles)是允许非管理员用户写入和管理模板的CSS样式的功能。本页规范了模板样式的使用。

规范

基本规范

  • 模板样式页应和特定模板或某系列模板有关,且应被特定模板或某一系列模板使用。
  • 未被任何模板或者其他页面使用的模板样式页应快速删除
  • 样式必须只会影响到关系模板或与此模板有关的其他元素的输出。如果添加模板到页面影响不相关部分的显示样式,可能会导致页面显示混乱。允许通过模板样式引入与页面其他部分不冲突的类,并在页面内的适当位置使用具有此类的元素,但这种情况应当谨慎。

命名规范

  • 模板样式页应置于特定模板的子页面,并以stylestyle-功能命名。
    • 例如应使用Template:MyTemplate/styles.cssTemplate:MyTemplate/styles-foo.css而不是Template:Styles.cssTemplate:Foo.css,以这方便识别及编辑样式页。
  • 如需要单独的模板样式页(例如共享的CSS)而不作为特定模板的子页面,需先获取共识,例如Template:Hello.css
  • 可能广泛应用到所有模板的模板样式应置于Template:ShareCSS的子页面。
  • 进行模板样式测试的沙盒应置于子页面,如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-imageborder-image等)只能使用无需署名的图片(例如公有领域),不能使用合理使用的图片,即便用于条目时有符合合理使用也不能。内嵌图片如linear-gradient不在此限。
    • 说明:一般使用图片的情况下,能够点击图片连到文件说明页查看署名或著作权协议。但使用在背景的图片将无法这么做。
  • 不建议使用!important。使用!important将导致用户自定义CSS难以甚至无法覆盖模板样式。
  • 不建议使用ID。HTML ID应该在页面上唯一,但模板通常不会在一个页面只被引用一次,即使是单一用途的模板也可能有无法预期的使用方式,因此推荐使用类别而不是ID来作为样式选择器。

其他规范

  • 移动模板时也应移动相应的模板样式页,
    • 例如Template:1移动到Template:2那么若有Template:1/2.css也要移动到Template:2/2.css
  • 样式页的保护层级应该和模板一致。
    • 说明:如果模板是高风险模板,那么样式页也会是高风险的。
      • 如果模板不是高风险模板而没有被保护,那么破坏模板本身就能够造成混乱。
      • 如果样式页的保护层级比模板高,因为模板页能够编辑,将会促使编辑者于在模板页添加内联样式。
  • 禁止在签名中加入任何模板样式。
    • 说明:当在签名中使用模板样式时,当模板样式更改时可能会改变之前或已存档的签名。