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 相关文章推荐
用jscript启动sqlserver
Jun 21 Javascript
js实现双向链表互联网机顶盒实战应用实现
Oct 28 Javascript
利用Javascript判断操作系统的类型实现不同操作系统下的兼容性
Jan 29 Javascript
javascript基本类型详解
Nov 28 Javascript
Javascript模拟加速运动与减速运动代码分享
Dec 11 Javascript
AngularJS的表单使用详解
Jun 17 Javascript
最实用的jQuery分页插件
Oct 09 Javascript
原生js仿淘宝网商品放大镜效果
Feb 28 Javascript
获取url中用&amp;隔开的参数实例(分享)
May 28 Javascript
jquery ztree实现右键收藏功能
Nov 20 jQuery
jQuery实现下拉菜单动态添加数据点击滑出收起其他功能
Jun 14 jQuery
JavaScript封装单向链表的示例代码
Sep 17 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和ACCESS写聊天室(一)
2006/10/09 PHP
PHP+SQL 注入攻击的技术实现以及预防办法
2011/01/27 PHP
php addslashes及其他清除空格的方法是不安全的
2012/01/25 PHP
php检测url是否存在的方法
2015/04/14 PHP
thinkphp3.2中Lite文件替换框架入口文件或应用入口文件的方法
2015/05/21 PHP
Laravel向公共模板赋值方法总结
2019/06/25 PHP
JS location几个方法小姐
2008/07/09 Javascript
浅析Prototype的模板类 Template
2011/12/07 Javascript
jQuery 1.7.2中getAll方法的疑惑分析
2012/05/23 Javascript
JS中toFixed()方法引起的问题如何解决
2012/11/20 Javascript
让网页跳转到指定位置的jquery代码非书签
2013/09/06 Javascript
IE6下javasc#ipt:void(0) 无效的解决方法
2013/12/23 Javascript
JavaScript简单表格编辑功能实现方法
2015/04/16 Javascript
Uploadify上传文件方法
2016/03/16 Javascript
JS动态改变浏览器标题的方法
2016/04/06 Javascript
vue异步加载高德地图的实现
2018/06/19 Javascript
Bootstrap table表格初始化表格数据的方法
2018/07/25 Javascript
微信小程序支付PHP代码
2018/08/23 Javascript
EasyUI 数据表格datagrid列自适应内容宽度的实现
2019/07/18 Javascript
小程序点击图片实现png转jpg
2019/10/22 Javascript
在vue中created、mounted等方法使用小结
2020/07/21 Javascript
[36:54]Mineski vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[53:52]OG vs EG 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
简单介绍Python的轻便web框架Bottle
2015/04/08 Python
Python3利用print输出带颜色的彩色字体示例代码
2019/04/08 Python
PyCharm使用Docker镜像搭建Python开发环境
2019/12/26 Python
css3 边框、背景、文本效果的实现代码
2018/03/21 HTML / CSS
HTML5的Video标签有部分MP4无法播放的问题解析(多图)
2017/08/18 HTML / CSS
八皇后问题,输出了所有情况,不过有些结果只是旋转了90度
2016/08/15 面试题
幼儿园家长会邀请函
2014/01/15 职场文书
岗位竞聘演讲稿范文
2014/04/24 职场文书
会议欢迎词
2015/01/23 职场文书
毕业生个人总结
2015/02/28 职场文书
个人工作表现自我评价
2015/03/06 职场文书
Nginx开启Brotli压缩算法实现过程详解
2021/03/31 Servers
浅谈Python基础之列表那些事儿
2021/05/11 Python