模板樣式表(templatestyles)可以讓用戶在不需要介面管理員權限下也能編寫適用於條目正文的樣式表。關於如何編寫樣式表,參見MDN文檔。
首先,用戶需要創建一個內容模型為「純CSS」頁面用以存放樣式表:
.css
結尾的頁面時,系統會自動將頁面的內容模型切換為「純CSS」。恭喜,你已經創建了一個模板樣式表!您現在可以在該頁面編寫CSS文本了。
在需要使用樣式表的頁面輸入<templatestyles src="【樣式表頁面名】" />
即可使用!建議將該標籤放在頁面最開頭,避免網速緩慢用戶加載過程中出現樣式閃爍的問題。
如果頁面名省略了命名空間則會默認使用模板命名空間(與嵌入模板一致)。
目前wrapper
參數並不能正確生效。<templatestyles/>
還支持wrapper
參數用以在所有樣式的選擇器前額外追加一個選擇器,限制生效範圍,適合於修改廣泛使用的樣式表前先複製一份到沙盒樣式表中並在沙盒頁中做比較用(比如<templatestyles src="Example/styles.css" wrapper="div.example" />
將會在所有樣式的選擇器前追加div.example
選擇器,使得樣式只在<div class="example"/>
內生效)。
Lua模塊亦能通過frame:extensionTag
使用:
local p = {};
function p.templateStyle( frame, src )
return frame:extensionTag( 'templatestyles', '', { src = "【樣式表頁面名】" } );
end
return p;
你可以在Help:沙盒/styles.css中添加樣式,並在Help:沙盒中引入<templatestyles src="Help:沙盒/styles.css" />
和需要測試的內容。建議對大量嵌入的樣式表做出更改之前先進行測試。
為了保障網站安全性和確保所有用戶都能顯示一致的樣式,模板樣式表擴展對樣式表內容有以下限制:
(這些限制由伺服器判定,編輯器也會有相關提示,推薦不要使用 Wikiplus 或 InPageEdit 等編輯工具而是使用編輯界面以獲得相關提示)
at-rule
、無法識別或不支持的屬性或屬性值,可以使用的屬性和屬性值參見擴展源碼;@font-face
,則其font-family
樣式值包含的字體名必須帶有TemplateStyles
前綴;body.skin-vector
等皮膚 class,body
是必要的.mw-parser-output
以將樣式限制在正文範圍內,避免惡意用戶篡改其他部分(如編輯按鈕等),如果需要在正文以外範圍使用(如系統消息,例如編輯衝突警告),則需要在相應頁面手動用<div class="mw-parser-output">...</div>
包裹整個源碼。sanitized-css
),因此可以使用new_content_model
變量使用濫用過濾器跟蹤或控制對它們的更改。data-mw-deduplicate
屬性的<style/>
標籤,其中data-mw-deduplicate
的值形如TemplateStyles:r123456"
,而123456是樣式表的修訂版ID(可以用Special:Diff查看)。
|