需求:页面上一个按钮点击后能够切换皮肤;
操作:less定义了全局变量值,引用方式如下:
修改:build - utils.js
less: generateLoaders('less').concat({
loader: 'sass-resources-loader',
options: {
resources: path.resolve(__dirname, '../src/assets/css/style/default.less')
}
}),
变量的确是全局的了,但是如何才能切换。
我有两套全局变量,如图:
需要通过按钮切换这两套
default.less:
@primary-color: rgba(255,255,255,0.85); // 全局主色
@link-color: #1890ff; // 链接色
@success-color: #52c41a; // 成功色
@warning-color: #faad14; // 警告色
@error-color: #f5222d; // 错误色
@font-size-base: 14px; // 主字号
@heading-color: rgba(0, 0, 0, 0.85); // 标题色
@text-color: rgba(0, 0, 0, 0.65); // 主文本色
@text-color-secondary: rgba(0, 0, 0, 0.45); // 次文本色
@disabled-color: rgba(0, 0, 0, 0.25); // 失效色
@border-radius-base: 4px; // 组件/浮层圆角
@border-color-base: rgba(255,255,255,0.2); // 边框色
@box-shadow-base: 0 2px 8px rgba(0, 0, 0, 0.15); // 浮层阴影
///自主设定
@font_color: rgba(255,255,255,0.85); // 字体颜色
@font_size: 14px; // 字体颜色
@border_radius: 2px;
在线等,提供有效思路或解决办法,跪谢。
项目中main.js引入theme.less,在app.vue的根位置加一个id,id为default或者red,换肤就是改变id为default或者为red.
以上面例子为例,id为default是字体是14,为red时就是16px