模板樣式(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
- 例如
- 樣式頁的保護層級應該和模板一致。
- 說明:如果模板是高風險模板,那麼樣式頁也會是高風險的。
- 如果模板不是高風險模板而沒有被保護,那麼破壞模板本身就能夠造成混亂。
- 如果樣式頁的保護層級比模板高,因為模板頁能夠編輯,將會促使編輯者於在模板頁添加行內樣式。
- 說明:如果模板是高風險模板,那麼樣式頁也會是高風險的。
- 禁止在簽名中加入任何模板樣式。
- 說明:當在簽名中使用模板樣式時,當模板樣式變更時可能會改變之前或已存盤的簽名。