网页最常见的换肤方案
方法 | 特点 |
---|---|
用class 命名空间 | 简单,无学习成本 |
准备多套css 主题 | 命名空间的进阶版,无学习成本 |
利用CSS预处理生成多套主题样式 | 开发快速,需要学习对应的语法以及打包处理 |
CSS IN JS 换肤 | 上手简单,有学习成本 |
CSS变量换肤 | 比较新颖的换肤技术 |
Huobi/OKEX
合约界面-换肤方案
- 非常原始的换肤手段,通过定义多个
class
命名覆盖的方式进行
文章图片
优点:简单,好理解,好实现,无额外学习成本
缺点:命名空间会提高
css
优先级,代码臃肿,样式不易管理,后期维护困难BINANCE
合约界面-换肤方案
- 利用 CSS IN JS 的便捷性进行主题的更换,(就是将样式写到
js
中,不是具体的库,而是一种方案的实现)一般是动态生成到style
标签中
文章图片
优点:方便,非常符合
React
的开发思想,进行组件的隔离,可以书写组合函数...缺点:样式不好复用;样式越大,需要的运算就越多
BitMEX
合约界面-换肤方案
没想到其貌不扬的界面下,隐藏着一颗躁动的心
- 使用多套
css主题
跟css变量
的方式进行换肤
文章图片
- 利用
Link
标签的rel
属性,进行多套皮肤的切换
css变量
的优点是支持运行时动态更改值,一套样式,使用简单;css 多套主题
的优点,简单,好理解,好实现。缺点:
css变量
的缺点是浏览器的低版本支持还不是很好,浏览器上显示的是变量名,对照样式时不直观;css多套主题
的缺点是文件太大,需要拆分,每增加一个主题,就得增加一套皮肤(书写一套css
样式)。文章图片
KuCoin
合约界面(KuMEX
)-换肤方案
- 利用
CSS预处理
生成多套主题样式进行换肤
文章图片
优点:工具进行处理,
css
编写速度更快,扩展性更强缺点:每增加一个皮肤,就得增加一个对应名字的文件...
总结:以上每种方案都各有其优缺点,但是
Huobi/OKEX
的方案太原始,是现在前端工程化下所不能接受的。DEMO 演示
css变量
扩展杂谈
- 怎么定义备用属性
css变量
+css
预处理器(less
方案)
- 利用
less(Mixins)
便捷生成备用属性
css变量
+css-vars-ponyfill
- 利用第三方库,生成备用属性
- 在项目中,推荐使用
css变量
+less
的方案,好处是样式复用简单,样式跟代码能分离开,比较符合咱们目前代码的改造,JS
代码比较纯粹,开发比较快速,不用书写过多的props
。
推荐阅读
- 操作系统|[译]从内部了解现代浏览器(1)
- web网页模板|如此优秀的JS轮播图,写完老师都沉默了
- 接口|axios接口报错-参数类型错误解决
- JavaScript|vue 基于axios封装request接口请求——request.js文件
- vue.js|vue中使用axios封装成request使用
- JavaScript|JavaScript: BOM对象 和 DOM 对象的增删改查
- JavaScript|JavaScript — 初识数组、数组字面量和方法、forEach、数组的遍历
- JavaScript|JavaScript — call()和apply()、Date对象、Math、包装类、字符串的方法
- JavaScript|JavaScript之DOM增删改查(重点)
- 前端|web前端dya07--ES6高级语法的转化&render&vue与webpack&export