小编给大家分享一下css-theme通过源码生成一份包含多套皮肤配置样式文件的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!
成都创新互联长期为数千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为弓长岭企业提供专业的网站设计、成都网站设计,弓长岭网站改版等技术服务。拥有十余年丰富建站经验和众多成功案例,为您定制开发。
本篇文章给大家带来的内容是关于css-theme如何通过源码生成一份包含多套皮肤配置的样式文件,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
css-theme
通过单一css文件生成多套主题,并合并入一个css文件中
特性
只加载一个css,通过切换rootClass瞬间切换主题
体积压缩,将多套css合并,去除冗余代码,避免文件体积膨胀
低侵入性,不改变现有开发模式,一处修改,全局生效
安装
$ npm i css-theme --save-dev
在css中需要根据主题变化的地方使用占位符,占位符可以是任何字符串。
你也可以通过预处理器变量的方式向css文件注入这些占位符。
@dark: #theme1; @light: #theme2; .container { .text1 { font-size: 16px; color: #theme1; line-height: normal; } .text2 { font-size: 14px; color: @dark; line-height: normal; } .text2 { font-size: 14px; color: @light; line-height: normal; } }
在gulp任务中调用theme插件。详见 demo/gulp
var cssTheme = require('css-theme').gulp; // gulp-plugin var themeConfig = require('./theme.config'); // configs less({ plugins:[new LessPluginTheme(themeConfig)] })
在通过gulp/webpack等工具调用less时,插入theme中间件。详见 demo/less
var LessPluginTheme = require('css-theme').less; // less-plugin var themeConfig = require('./theme.config'); // configs gulp.task('default', function() { return gulp.src('./index.less') .pipe(less()) .pipe(cssTheme(themeConfig)) .pipe(gulp.dest('./dist')); });
placeholder: 占位符,描述每个变量在css文件中对应的占位符
list: 主题列表
list.targetMap: 该主题中每个变量对应的值
list.rootClass: 使用该主题时顶层添加的class
list.default: 是否将该主题作为默认主题,在未指定class时默认展示该主题
module.exports = { 'placeholder': { 'dark': '#theme1', 'light': '#theme2' }, 'list': [ { 'default': false, 'targetMap': { 'dark': '#ff6a3a', 'light': '#ffa284', }, 'rootClass': 'skin_orange' }, { 'default': false, 'targetMap': { 'dark': '#fdd000', 'light': '#ffd71c', }, 'rootClass': 'skin_yellow' } ] };
看完了这篇文章,相信你对css-theme通过源码生成一份包含多套皮肤配置样式文件的方法有了一定的了解,想了解更多相关知识,欢迎关注创新互联行业资讯频道,感谢各位的阅读!
新闻名称:css-theme通过源码生成一份包含多套皮肤配置样式文件的方法
转载注明:https://www.cdcxhl.com/article18/goccdp.html
成都网站建设公司_创新互联,为您提供面包屑导航、品牌网站建设、域名注册、动态网站、商城网站、网站策划
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联