方法 | 特色 |
---|---|
用class 命名空間 | 簡單,無學習成本 |
準備多套css 主題 | 命名空間的進階版,無學習成本 |
利用CSS預處理生成多套主題樣式 | 開發快速,須要學習對應的語法以及打包處理 |
CSS IN JS 換膚 | 上手簡單,有學習成本 |
CSS變量換膚 | 比較新穎的換膚技術 |
Huobi/OKEX
合約界面-換膚方案class
命名覆蓋的方式進行
優勢:簡單,好理解,好實現,無額外學習成本
缺點:命名空間會提升css
優先級,代碼臃腫,樣式不易管理,後期維護困難css
BINANCE
合約界面-換膚方案js
中,不是具體的庫,而是一種方案的實現)通常是動態生成到style
標籤中優勢:方便,很是符合React
的開發思想,進行組件的隔離,能夠書寫組合函數...
缺點:樣式很差複用;樣式越大,須要的運算就越多前端
BitMEX
合約界面-換膚方案沒想到其貌不揚的界面下,隱藏着一顆躁動的心
css主題
跟css變量
的方式進行換膚Link
標籤的 rel
屬性,進行多套皮膚的切換優勢:css變量
的優勢是支持運行時動態更改值,一套樣式,使用簡單;css 多套主題
的優勢,簡單,好理解,好實現。
缺點:css變量
的缺點是瀏覽器的低版本支持還不是很好,瀏覽器上顯示的是變量名,對照樣式時不直觀;css多套主題
的缺點是文件太大,須要拆分,每增長一個主題,就得增長一套皮膚(書寫一套css
樣式)。git
KuCoin
合約界面(KuMEX
)-換膚方案CSS預處理
生成多套主題樣式進行換膚
優勢:工具進行處理,css
編寫速度更快,擴展性更強
缺點:每增長一個皮膚,就得增長一個對應名字的文件...github
總結:以上每種方案都各有其優缺點,可是Huobi/OKEX
的方案太原始,是如今前端工程化下所不能接受的。前端工程化
css變量
擴展雜談須要增長postcss-custom-properties這個插件瀏覽器
css變量
+css
預處理器(less
方案)less(Mixins)
便捷生成備用屬性css變量
+css-vars-ponyfill
css變量
+less
的方案,好處是樣式複用簡單,樣式跟代碼能分離開,比較符合我們目前代碼的改造,JS
代碼比較純粹,開發比較快速,不用書寫過多的props
。