web應用程序,切換主題,給其換膚,是一個比較常見的需求。css
快速切換主題這個需求,它考驗了項目的CSS代碼,是否具備可維護性、可擴展性。
css要如何編寫,才能達到這兩點呢,我還在研究學習當中,能夠參考在大型項目中組織CSS。
原本,此文想寫這個的,發現道行不夠(┬_┬),我仍是寫如何實現的,比較好。html
想要換主色調,其實就是換一種風格樣式,最終都是換css。
我看目前比較流行的幾種切換主題的方式:vue
我目前用的是第一種方式,把操做過程記錄下來,方便之後查看。node
說明:此項目UI是在elementUI基礎上創建的,因此,咱們能夠經過element提供的方法,來自定義主題。git
使用工具下載自定義主題文件,並命名爲wq-variables.css
。之後咱們若是想要增長主題文件,只須要修改變量文件中各個變量所對應的值。github
咱們利用工具來編譯主題。
在終端,將剛剛修改好的變量文件,經過命令node_modules/.bin/et -c wq-variables.css
來編譯主題。web
默認狀況下,編譯的主題目錄會放在./theme
下。因爲,咱們是經過改變css的命名空間來切換主題的,那麼,咱們就須要爲剛生成的主題增長命名空間。主題文件內容不少,若是手動一個個添加命名空間,工做量巨大,這個時候,可使用另外一個給css增長命名空間的工具。下載這個項目,而後只須要修改gulpfile.js
文件中3處內容,就能夠獲得想要的內容,這裏注意,本項目css自定義的命名空間統一爲custom-******
,其中******
建議使用主題色的16進制編碼,也可使用其餘字符串,可是要和radio標籤統一。gulp
自定義主題文件,已經有了,只剩下如何引入使用了。segmentfault
App.vue
中import新增的主題樣式(這個也能夠寫在topbar.vue文件中,到底哪一種好些,我也不清楚)./src/components/nav/topbar/topbar.vue
中,添加對應的radio標籤能夠新建一個css文件,而後在其中編寫樣式,以後在入口文件引入就ok了。工具
具體效果,可查看於此網站:
http://weiqinl.com/vue-element-admin/
此作法參考於:
基於Element的動態換膚