前端實現換膚功能

2021-09-25 05:30:54 字數 1483 閱讀 5207

專案背景: 由於專案要求,需要前端對不同的企業使用者展示不一樣的顏色,也就是簡單的更改膚色.本來使用前端框架會很容易解決,但是公司目前的架構不是很好,前後端分離也沒有那麼徹底,web工程還是搭配jsp,沒辦法,只好用最純粹的css來實現換膚要求了.

最開始沒怎麼想,決定使用最簡單的方法,根據不同的顏色方案載入不同的css

rel=

"stylesheet"

href="

" id

="customertheme"

>

>

//根據不同的企業使用者載入不同的css

document.

queryselector

('#customertheme').

setattribute

('href'

,'./theme1.css'

)script

>

這種方案比較簡單,但相應的就需要寫很多css,而且css除了顏色不一樣,**重複比較多,維護起來也不方便,雖然**可能不會太多,但是作為乙個有逼格的程式設計師,這種**必須要優化.

第二種方法是和同事**的時候,同事說偶然看谷歌頁面時發現的.

rel=

"stylesheet"

href="

" id

="customertheme"

>

rel=

"stylesheet"

href

="./theme.css"

>

>

//根據不同的企業使用者載入不同的css

document.

queryselector

('#customertheme').

setattribute

('href'

,'./root_theme1.css'

)script

>

/* root_theme1.css */

:root

/* theme.css */

.theme

按照這種寫法,我們只需要多寫幾個root_themex.css的變數css,根據不同的企業使用者載入不同的root_theme的css檔案就可以實現換膚的功能.

其實就是方案二,我們在html head裡面加上乙個style

"theme"

>

style

>

然後我們進行動態設定就可以了

document.

queryselect

('#theme'

).innerhtml=

`:root

;}`

這樣我們可以支援任意膚色了,只需要和後台約定theme的規則即可

換膚功能的實現

記得大概兩年前做過一款應用,涉及的主題 的更換,並不是單純的只換背景顏色,導航欄顏色,很類似於qq裡面的 更換,而是需要更換整個應用的80 還有包括一部分的字型.講完ui布局之後開始設計 2.分頁面設計,儘量減少常駐記憶體的ui,實際上,只有那3個主介面時常駐的,其他的ui都不是常駐。這樣在頁面被開...

WPF 實現換膚功能

將所有控制項的基本樣式匯集到乙個資源字典中,構成介面的基本樣式檔案,然後進行不同顏色 的定製。即在新的 資源字典檔案中引入基本樣式檔案,然後使用資源繼承,並且只設定控制項的顏色屬性等,形成乙個 檔案。注意 在設定不同 檔案時,不同控制項的樣式名字必須固定,只改變其顏色就能形成新的 因為在介面xaml...

css實現換膚功能

使用css的自定義屬性,和getcomputedstyle setproperty getpropertyvalue 來實現 css的自定義樣式 是css的變數宣告 root theme color f00 getcomputedstyle elem,偽 返回的是乙個該elem的所有屬性 自定義屬性...