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 相关文章推荐
获取页面高度,窗口高度,滚动条高度等参数值getPageSize,getPageScroll
Sep 22 Javascript
window.open关于浏览器拦截问题分析及解决方法
Feb 05 Javascript
js与css实现弹出层覆盖整个页面的方法
Dec 13 Javascript
图文详解JavaScript的原型对象及原型链
Aug 02 Javascript
用原生js做单页应用
Jan 17 Javascript
详解Vue学习笔记进阶篇之列表过渡及其他
Jul 17 Javascript
JavaScript函数的特性与应用实践深入详解
Dec 30 Javascript
详解如何在Vue项目中导出Excel
Apr 19 Javascript
jQuery实现条件搜索查询、实时取值及升降序排序的方法分析
May 04 jQuery
vue 实现移动端键盘搜索事件监听
Nov 06 Javascript
Vue.js暴露方法给WebView的使用操作
Sep 07 Javascript
Vue项目打包编译优化方案
Sep 16 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
div li的多行多列 无刷新分页示例代码
2013/10/16 PHP
php简单实现发送带附件的邮件
2015/06/10 PHP
PHP实现链式操作的原理详解
2016/09/16 PHP
javascript网页关闭时提醒效果脚本
2008/10/22 Javascript
网页自动跳转代码收集
2009/09/27 Javascript
jquery 实现上下滚动效果示例代码
2013/08/09 Javascript
JSON 数字排序多字段排序介绍
2013/09/18 Javascript
jQuery 滑动方法slideDown向下滑动元素
2014/01/16 Javascript
运用JQuery的toggle实现网页加载完成自动弹窗
2014/03/18 Javascript
浅谈nodeName,nodeValue,nodeType,typeof 的区别
2015/01/13 Javascript
JavaScript正则表达式中的ignoreCase属性使用详解
2015/06/16 Javascript
JS实现的颜色实时渐变效果完整实例
2016/03/25 Javascript
微信小程序 Toast自定义实例详解
2017/01/20 Javascript
详解vue-router 2.0 常用基础知识点之router.push()
2017/05/10 Javascript
配置nodejs环境的方法
2017/05/13 NodeJs
laydate 显示结束时间不小于开始时间的实例
2017/08/11 Javascript
Vue-cli项目获取本地json文件数据的实例
2018/03/07 Javascript
简单了解Ajax表单序列化的实现方法
2019/06/14 Javascript
如何在VUE中使用vue-awesome-swiper
2021/01/04 Vue.js
python使用Berkeley DB数据库实例
2014/09/26 Python
在Python中操作时间之tzset()方法的使用教程
2015/05/22 Python
django输出html内容的实例
2018/05/27 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
2020/03/09 Python
解决Jupyter无法导入已安装的 module问题
2020/04/17 Python
HTML5+CSS3 诱人的实例:3D立方体旋转动画实例
2016/12/30 HTML / CSS
德国高品质男装及配饰商城:Cultizm(Raw Denim原色牛仔裤)
2018/04/16 全球购物
匈牙利最大的健身制造商和销售商:inSPORTline
2018/10/30 全球购物
大学生预备党员自我评价分享
2013/11/16 职场文书
夜班门卫岗位职责
2013/12/09 职场文书
建筑安全责任书范本
2014/07/24 职场文书
纪检干部现实表现材料
2014/08/21 职场文书
合作协议书模板2014
2014/09/26 职场文书
先进集体申报材料
2014/12/25 职场文书
二审答辩状范文
2015/05/22 职场文书
微信搭讪开场白
2015/05/28 职场文书
Python使用protobuf序列化和反序列化的实现
2021/05/19 Python