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 相关文章推荐
一直复略了的一个问题,关于表单重复提交
Feb 15 Javascript
js 遍历对象的属性的代码
Dec 29 Javascript
JS图片切换的具体方法(带缩略图版)
Nov 12 Javascript
JavaScript 实现打印,打印预览,打印设置
Dec 30 Javascript
javascript设计模式之对象工厂函数与构造函数详解
Jul 30 Javascript
关于input全选反选恶心的异常情况
Jul 24 Javascript
Javascript this 函数深入详解
Dec 13 Javascript
解决Vue.js由于延时显示了{{message}}引用界面的问题
Aug 25 Javascript
JavaScript实现的前端AES加密解密功能【基于CryptoJS】
Aug 28 Javascript
vue form 表单提交后刷新页面的方法
Sep 04 Javascript
vue使用Proxy实现双向绑定的方法示例
Mar 20 Javascript
JavaScript如何借用构造函数继承
Nov 06 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
PHP中的错误处理、异常处理机制分析
2012/05/07 PHP
如何使用php判断服务器是否是HTTPS连接
2013/07/05 PHP
Laravel框架学习笔记(二)项目实战之模型(Models)
2014/10/15 PHP
php中curl使用指南
2015/02/05 PHP
Zend Framework动作助手(Zend_Controller_Action_Helper)用法详解
2016/03/05 PHP
Laravel框架自定义公共函数的引入操作示例
2019/04/16 PHP
php-fpm重启导致的程序执行中断问题详解
2019/04/29 PHP
PHP实现批量修改文件名的方法示例
2019/09/18 PHP
PHP PDO和消息队列的个人理解与应用实例分析
2019/11/25 PHP
Javascript对象中关于setTimeout和setInterval的this介绍
2012/07/21 Javascript
使用indexOf等在JavaScript的数组中进行元素查找和替换
2013/09/18 Javascript
调用DOM对象的focus使文本框获得焦点
2014/02/19 Javascript
浅谈JavaScript字符串与数组
2015/06/03 Javascript
jQuery实现仿美橙互联两级导航菜单效果完整实例
2015/09/17 Javascript
js简易版购物车功能
2017/06/17 Javascript
Vue2.0设置全局样式(less/sass和css)
2017/11/18 Javascript
微信小程序progress组件使用详解
2018/01/31 Javascript
Angular实现的进度条功能示例
2018/02/18 Javascript
Javascript读取上传文件内容/类型/字节数
2019/04/30 Javascript
Vue数据双向绑定原理实例解析
2020/05/15 Javascript
Python中使用装饰器和元编程实现结构体类实例
2015/01/28 Python
Python金融数据可视化汇总
2017/11/17 Python
Python实现抢购IPhone手机
2018/02/07 Python
对python多线程与global变量详解
2018/11/09 Python
Python实现K折交叉验证法的方法步骤
2019/07/11 Python
python支持多线程的爬虫实例
2019/12/21 Python
Python延迟绑定问题原理及解决方案
2020/08/04 Python
让IE下支持Html5的placeholder属性的插件
2014/09/02 HTML / CSS
HTML5添加禁止缩放功能
2017/11/03 HTML / CSS
澳大利亚Rockwear官网:女子瑜伽、健身和运动服
2021/01/26 全球购物
意大利在线药房:Saninforma
2021/02/11 全球购物
中文专业学生自我评价范文
2014/02/06 职场文书
战友聚会主持词
2014/04/02 职场文书
超市促销活动总结
2014/07/01 职场文书
六年级学生评语大全
2014/12/26 职场文书
2016庆祝教师节新闻稿
2015/11/25 职场文书