首先,每個頁面都會加載以下兩個 css,data/cache/style_1_common.css 和 data/cache/style_1_forum_index.css 。
先講講這兩個文件名的命名規則:
第一個是整站通用的 css,所以命名為 common.css,然後前面的代號是你使用了哪套風格,所以 style_1_common.css 表示是第一套風格的共用的 css;
第二個是表示 forum 的 index 頁面風格,也就是論壇的首頁風格。
下面講一下那兩個 css 是如何生成的。
首先,那兩個 css 是程序生成的 css 緩存,所以你要改 css 的話,不能直接改那兩個文件,否則一更新緩存,之前的改動就無效了。大家可以看到 template 對應的每套模板中,就拿自帶的 default 模板舉例吧,default 模板中,帶有一個 common 的文件夾,裏面有 css 文件,common.css 對應的就是生成緩存的 style_1_common.css 文件,style_1_forum_index.css 對應的是 module.css 。
common.css 沒有什麼特別之處,裏面也有 css 的説明,跟普通的 css 差不多。
大家打開 module.css,可以看到有這樣的説明,
- /** group::index **/
- /* 羣組 index 模塊使用的 CSS */
- /** end **/
/** group::index **/開始到/** end **/結束,説明是 group 頻道的 index 模塊使用的 CSS,也就是羣組頻道對應的首頁模板將使用的 CSS 。
再舉個例子,/** misc::invite,group,forum::viewthread **/開始到/** end **/結束,説明是 misc 頻道的 invite 模塊、 group 頻道的全部模塊和 forum 頻道的 viewthread 模塊使用的 CSS 。
ok,下面的大家可以參照這個學習一下,包括你想擴展他,都可以直接在裏面直接添加就可以。
下面講講緩存 css 是如何生成的,common.css 比較簡單,就是直接讀取,然後生成到 data/cache 目錄下。
每個頻道模塊獨立的 css,會先將 module.css 在 data/cache 下生成一個對應的風格 id 下的緩存的 css,然後當你訪問某個頻道時,會生成對應頻道下的 css,此時,剛才介紹的那些標識就起作用了。程序會根據/** group::index **/和/** end **/這種標識,拆分出哪些頻道、哪些模塊該需要哪些 css 。
程序部分就不介紹了,程序的代碼主要在 source/class/class_template.php 文件處理,有興趣的同學可以深入研究一下。