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 相关文章推荐
jQuery遍历Form示例代码
Sep 03 Javascript
Extjs grid添加一个图片状态或者按钮的方法
Apr 03 Javascript
jQuery实现的图片分组切换焦点图插件
Jan 06 Javascript
js表格排序实例分析(支持int,float,date,string四种数据类型)
May 06 Javascript
Ionic实现页面下拉刷新(ion-refresher)功能代码
Jun 03 Javascript
js print打印网页指定区域内容的简单实例
Nov 01 Javascript
微信小程序 二维码canvas绘制实例详解
Jan 06 Javascript
jquery 实现复选框的全选操作实例代码
Jan 24 Javascript
JavaScript 数据类型详解
Mar 13 Javascript
基于Vue2.X的路由和钩子函数详解
Feb 09 Javascript
JS获取url参数,JS发送json格式的POST请求方法
Mar 29 Javascript
vue中子组件的methods中获取到props中的值方法
Aug 27 Javascript
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
实用函数5
2007/11/08 PHP
PHP输出两个数字中间有多少个回文数的方法
2015/03/23 PHP
Thinkphp3.2.3分页使用实例解析
2016/07/28 PHP
PHP实现对xml进行简单的增删改查(CRUD)操作示例
2017/05/19 PHP
PHP魔术方法之__call与__callStatic使用方法
2017/07/23 PHP
Laravel手动返回错误码示例
2019/10/22 PHP
在IE,Firefox,Safari,Chrome,Opera浏览器上调试javascript
2008/12/02 Javascript
jQuery入门问答 整理的几个常见的初学者问题
2010/02/22 Javascript
jQuery 自定义函数写法分享
2012/03/30 Javascript
浏览器窗口加载和大小改变事件示例
2014/02/27 Javascript
jquery的clone方法应用于textarea和select的bug修复
2014/06/26 Javascript
JavaScript中判断变量是数组、函数或是对象类型的方法
2015/02/25 Javascript
JQuery实现图片轮播效果
2015/09/15 Javascript
chrome调试javascript详解
2015/10/21 Javascript
jquery实现右侧栏菜单选择操作
2016/03/04 Javascript
JavaScript中创建对象的模式汇总
2016/04/19 Javascript
微信小程序对接七牛云存储的方法
2017/07/30 Javascript
详解如何使用PM2将Node.js的集群变得更加容易
2017/11/15 Javascript
vue项目关闭eslint校验
2018/03/21 Javascript
vue内置组件transition简单原理图文详解(小结)
2018/07/12 Javascript
用node开发并发布一个cli工具的方法步骤
2019/01/03 Javascript
简单介绍Python中的decode()方法的使用
2015/05/18 Python
浅析AST抽象语法树及Python代码实现
2016/06/06 Python
Python编程实现的简单Web服务器示例
2017/06/22 Python
Python3实现爬取简书首页文章标题和文章链接的方法【测试可用】
2018/12/11 Python
对Python中画图时候的线类型详解
2019/07/07 Python
python圣诞树编写实例详解
2020/02/13 Python
使用python matplotlib 画图导入到word中如何保证分辨率
2020/04/16 Python
python+openCV对视频进行截取的实现
2020/11/27 Python
HTML5中5个简单实用的API
2014/04/28 HTML / CSS
凯特·丝蓓英国官网:Kate Spade英国
2016/11/07 全球购物
如何实现一个自定义类的序列化
2012/05/22 面试题
幼儿园教育教学反思
2014/01/31 职场文书
仓管岗位职责范本
2014/02/08 职场文书
新课培训心得体会
2014/09/03 职场文书
禁毒主题班会教案
2015/08/14 职场文书