Vue的elementUI实现自定义主题方法


Posted in Javascript onFebruary 23, 2018

使用vue开发项目,用到elementUI,根据官网的写法,我们可以自定义主题来适应我们的项目要求,下面来介绍一下两种方法实现的具体步骤,(可以参考官方文档自定义主题官方文档),先说项目中没有使用scss编写,用主题工具的方法(使用的较多)

第一种方法:使用命令行主题工具

使用vue-cli安装完项目并引入element-ui(具体可参考第二种方法中的介绍)

一、安装工具

1,安装主题工具

npm i element-theme -g

2,安装chalk主题,可以从 npm 安装或者从 GitHub 拉取最新代码

# 从 npm
npm i element-theme-chalk -D
# 从 GitHub
npm i https://github.com/ElementUI/theme-chalk -D

二、初始化变量文件

et -i [可以自定义变量文件,默认为element-variables.scss]
> ✔ Generator variables file

这时根目录下会产生element-variables.scss(或自定义的文件),大致如下:

$--color-primary: #409EFF !default;
$--color-primary-light-1: mix($--color-white, $--color-primary, 10%) !default; /* 53a8ff */
$--color-primary-light-2: mix($--color-white, $--color-primary, 20%) !default; /* 66b1ff */
$--color-primary-light-3: mix($--color-white, $--color-primary, 30%) !default; /* 79bbff */
$--color-primary-light-4: mix($--color-white, $--color-primary, 40%) !default; /* 8cc5ff */
$--color-primary-light-5: mix($--color-white, $--color-primary, 50%) !default; /* a0cfff */
$--color-primary-light-6: mix($--color-white, $--color-primary, 60%) !default; /* b3d8ff */
$--color-primary-light-7: mix($--color-white, $--color-primary, 70%) !default; /* c6e2ff */
$--color-primary-light-8: mix($--color-white, $--color-primary, 80%) !default; /* d9ecff */
$--color-primary-light-9: mix($--color-white, $--color-primary, 90%) !default; /* ecf5ff */
$--color-success: #67c23a !default;
$--color-warning: #eb9e05 !default;
$--color-danger: #fa5555 !default;
$--color-info: #878d99 !default;
...

三、修改变量

直接编辑 element-variables.scss 文件,例如修改主题色为自己所需要的颜色(如: 紫色(purple))

$--color-primary: purple;

四、编译主题

修改完变量后,要编译主题(如果编译后,再次修改了变量,需要重新编译)

et
> ✔ build theme font
> ✔ build element theme

五、引入自定义主题

最后一步,将编译好的主题文件引入项目(编译的文件默认在根目录下的theme文件下,也可以通过 -o 参数指定打包目录),在入口文件main.js中引入

import '../theme/index.css'
import ElementUI from 'element-ui'
import Vue from 'vue'
Vue.use(ElementUI)

在项目中写些样式,看下主题色是否改变:(主题色变为紫色)

<div>
  <el-button>默认按钮</el-button>
  <el-button type="primary">主要按钮</el-button>
  <el-button type="success">成功按钮</el-button>
  <el-button type="info">信息按钮</el-button>
  <el-button type="warning">警告按钮</el-button>
  <el-button type="danger">危险按钮</el-button>
 </div>

第二种方法: 直接修改element样式变量

在项目中直接修改element的样式变量,(前提是你的文档也是使用scss编写)

一、首先用vue-cli安装一个新项目:

1,安装vue:

npm i -g vue

2,在项目目录下安装vue-cli:

npm i -g vue-cli

3,基于webpack建立新项目( vue-project)

vue init webpack vue-project

4,依次输入以下命令行,运行vue-project

cd vue-project
npm i
npm run dev

二、安装elementUI以及sass-loader,node-sass(项目中使用scss编写需要依赖的插件)

1,安装element-ui

npm i element-ui -S

2,安装sass-loader,node-sass

npm i sass-loader node-sass -D

在这里说一下,不需要配置webpack.base.conf.js文件,vue-loader会根据不同类型文件来配置相应loader来打包我们的样式文件(感兴趣的可看下vue-loader的核心代码)

三、改变element样式变量

1.在src下建立element-variables.scss文件(名字可以自定义),写入如下代码:

/* 改变主题色变量 */
$--color-primary: teal;
/* 改变 icon 字体路径变量,必需 */
$--font-path: '../node_modules/element-ui/lib/theme-chalk/fonts';
@import "../node_modules/element-ui/packages/theme-chalk/src/index";

2.在入口文件main.js中引入上面的文件即可

import Vue from 'vue'
import Element from 'element-ui'
import './element-variables.scss'
Vue.use(Element)

看下效果吧,在文件里引入些样式看看,如button

<div>
  <el-button>默认按钮</el-button>
  <el-button type="primary">主要按钮</el-button>
  <el-button type="success">成功按钮</el-button>
  <el-button type="info">信息按钮</el-button>
  <el-button type="warning">警告按钮</el-button>
  <el-button type="danger">危险按钮</el-button>
 </div>

默认的颜色已经变为我们自定义的了,有其他的改变在element-variable.scss文件中改变变量即可

以上这篇Vue的elementUI实现自定义主题方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js实现从数组里随机获取元素
Jan 12 Javascript
jQuery晃动层特效实现方法
Mar 09 Javascript
JS实现的表格操作类详解(添加,删除,排序,上移,下移)
Dec 22 Javascript
AngularJS出现$http异步后台无法获取请求参数问题的解决方法
Nov 03 Javascript
详解Angular的双向数据绑定(MV-VM)
Dec 26 Javascript
详解Jquery Easyui的验证扩展
Jan 09 Javascript
原生js实现返回顶部缓冲效果
Jan 18 Javascript
js自定义瀑布流布局插件
May 16 Javascript
老生常谈js数据类型
Aug 03 Javascript
实例详解BootStrap的动态模态框及静态模态框
Aug 13 Javascript
你不知道的 TypeScript 高级类型(小结)
Aug 28 Javascript
vue里使用create, mounted调用方法
Apr 26 Vue.js
elementui的默认样式修改方法
Feb 23 #Javascript
详解plotly.js 绘图库入门使用教程
Feb 23 #Javascript
angular基于ng-alain定义自己的select组件示例
Feb 23 #Javascript
搭建element-ui的Vue前端工程操作实例
Feb 23 #Javascript
使用Vue.js和Element-UI做一个简单登录页面的实例
Feb 23 #Javascript
Vue2 模板template的四种写法总结
Feb 23 #Javascript
Vue 创建组件的两种方法小结(必看)
Feb 23 #Javascript
You might like
最小化数据传输――在客户端存储数据
2006/10/09 PHP
帝国cms目录结构分享
2015/07/06 PHP
php单元测试phpunit入门实例教程
2017/11/17 PHP
Laravel框架自定义验证过程实例分析
2019/02/01 PHP
laravel中的fillable和guarded属性详解
2019/10/23 PHP
一些常用的JS功能函数(2009-06-04更新)
2009/06/04 Javascript
firefo xml 读写实现js代码
2009/06/11 Javascript
javascript 按回车键相应按钮提交事件
2009/11/02 Javascript
JQuery+CSS实现图片上放置按钮的方法
2015/05/29 Javascript
深入解析JavaScript编程中的this关键字使用
2015/11/09 Javascript
nodejs个人博客开发第四步 数据模型
2017/04/12 NodeJs
vue引入ueditor及node后台配置详解
2018/01/03 Javascript
解决angularjs前后端分离调用接口传递中文时中文乱码的问题
2018/08/13 Javascript
使用python将mdb数据库文件导入postgresql数据库示例
2014/02/17 Python
用Python制作在地图上模拟瘟疫扩散的Gif图
2015/03/31 Python
Python面向对象之静态属性、类方法与静态方法分析
2018/08/24 Python
python训练数据时打乱训练数据与标签的两种方法小结
2018/11/08 Python
Django 自动生成api接口文档教程
2019/11/19 Python
python 使用while循环输出*组成的菱形实例
2020/04/12 Python
新手常见Python错误及异常解决处理方案
2020/06/18 Python
Python爬虫使用bs4方法实现数据解析
2020/08/25 Python
python help函数实例用法
2020/12/06 Python
matplotlib自定义鼠标光标坐标格式的实现
2021/01/08 Python
Tarte Cosmetics官网:美国最受欢迎的化妆品公司之一
2017/08/24 全球购物
美国宠物护理专家:Revival Animal Health
2020/01/05 全球购物
大学毕业生自我鉴定
2013/11/05 职场文书
中专药剂专业应届毕的自我评价
2013/12/27 职场文书
乌鸦喝水教学反思
2014/02/07 职场文书
表彰大会主持词
2014/03/26 职场文书
村级四风对照检查材料
2014/08/24 职场文书
师范生见习报告范文
2014/11/03 职场文书
生日宴会家属答谢词
2015/09/29 职场文书
python 统计代码耗时的几种方法分享
2021/04/02 Python
MySQL表的增删改查(基础)
2021/04/05 MySQL
mysql 直接拷贝data 目录下文件还原数据的实现
2021/07/25 MySQL
Python 实现Mac 屏幕截图详解
2021/10/05 Python