Help:模板樣式
| 本页為操作指南,用於介紹中文维基百科社群的一些实现和操作方式。 本文只是論述,不屬於方針或指引。如果本指南與方針或指引起衝突或不一致,請以方針或指引的條文為準。 |
模板样式(TemplateStyles)是允许非管理员用户写入和管理模板的CSS样式的功能。它允许编辑模板的贡献者区分内容及外觀。這是網頁上的良好實踐,可使管理模板输出变得容易。
模板样式因为以下原因很有用:
- 它使模板在移动设备上工作更佳。
- 它减少了在应用CSS规则的位置问题上的混乱。
- 编辑CSS(尤其是像Mediawiki:Common.css的全局样式表)目前只限于管理员,这是参与编辑模板主要的障碍。
- 过往所有与模板相关的样式都放在全局样式表中(Mediawiki:Common.css),必须在所有页面加载(无论其是否实际包含使用那些样式的页面),这浪费了带宽,并使调试样式规则变得更加困难。
基本使用方法
[编辑]添加<templatestyles src="[某頁面]" />到需要使用CSS樣式的頁面,然後在[某頁面]內編寫CSS語法,這樣就會載入到使用了这个<templatestyles>標籤的頁面(無論直接使用或是通过模板嵌入)。
如果要在Lua模組中載入模板樣式,則在需要使用CSS樣式輸出的文字中確認包含以下內容(frame为模块入口函数的唯一参数):
frame:extensionTag{ name = 'templatestyles', args = { src = '[某頁面]' } }
其等价于
frame:callParserFunction{ name = '#tag:templatestyles', args = { '', src='[某頁面]' } }
管理员注意:为确保安全性,CSS过滤器会在模板样式中的类别选择器之前添加.mw parser-output类别选择器,以确保模板样式不会作用于内容输出层之外的其他部分。如需在MediaWiki命名空间使用模板样式,请在界面消息文本前后添加<div class="mw-parser-output">...</div>。
建立模板樣式頁面
[编辑][某頁面]的內容模型必須是sanitized-css(已过滤的CSS)。在模板命名空間、是子頁面、並且以.css結尾為標題新建的頁面皆會是sanitized-css內容模型。如果要在其他命名空间建立sanitized-css頁面,請在Template:沙盒/TemplateStyles建立子頁面後,將其移動至所需的位置。如需让现存的页面改用sanitized-css內容模型,请联系管理員。
在用户命名空间以及MediaWiki命名空间新建的.css页面默认使用css內容模型,因此无法在<templatestyles>标签中使用。
僅在部份情況使用
[编辑]MediaWiki在html和body標籤提供了一些類別選擇器,用來指示用戶現在的狀態,包括指示用戶正在使用哪個外觀。你可以使用這些選擇器來進行不同的樣式設定。
/* 僅在Vector外觀中使用 */
body.skin-vector .foo { color: green; }
/* 僅在用戶沒有啟用JavaScript時使用 */
html.client-nojs .foo { color: green; }
/* 僅在行動版頁面中使用 */
body.skin-minerva .foo { color: green; }
/* 在列印版本條目命名空間中隱藏 */
@media print { body.ns-0 .foo { display: none !important ; } }
现有的模板样式
[编辑]被多个模板共享的css样式,全部放在Template:ShareCSS的子页面。
搜索框中输入contentmodel:sanitized-css即可查询已经创建的模板样式。
已转换的模板
[编辑]已转换到调用模板样式的模板可在说明页上加上{{模板样式|某頁面}}:
| 本模板使用以下模板样式: |
之后这些模板会归入分类:使用模板样式的模板分类中,你可以在这个分类中找到这些模板。
維護
[编辑]要將模板樣式加入到分類,使用以下語法:
/* [[Category:分類名稱]] */
外部链接
[编辑]参见
[编辑]- Wikipedia:Lua
- Wikipedia:徵求意見/模板样式:其中正在跟踪从Common.css、Mobile.css和skin.css到模板样式的转换