首先,每個頁面都會載入以下兩個 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,可以看到有這樣的說明,

  1. /** group::index **/
  2. /* 群組 index 模組使用的 CSS */
  3. /** 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 檔案處理,有興趣的同學可以深入研究一下。