element-ui 的el-button组件中添加自定义颜色和图标的实现方法


Posted in Javascript onOctober 26, 2018

我使用的element-ui的版本是V1.4.13。

element-ui 的el-button组件中添加自定义颜色和图标的实现方法

如上图所示,如果使用el-button,加颜色是可以通过设置type属性的值,加图标就设置icon属性的值。

现在产品给了一个需求,就是自定义的很多种类别,不同的类别的按钮显示不同的颜色和图标。如下图所示:

element-ui 的el-button组件中添加自定义颜色和图标的实现方法

为了方便开发,目前的解决方案是:添加一个自定义全局指令,同时在element-ui源码中,加入对应的组件。开发人员在开发时只要在type中添加不同的类的值,就能添加上颜色和图标。

1、在element-ui的button源码中加了自定义指令otherRender,以及一个局部组件vRender

element-ui 的el-button组件中添加自定义颜色和图标的实现方法

2、局部组件vRender的写法:

element-ui 的el-button组件中添加自定义颜色和图标的实现方法

这里不懂的可以看下 https://cn.vuejs.org/v2/guide/render-function.html中的函数式组件

element-ui 的el-button组件中添加自定义颜色和图标的实现方法

3、自定义指令otherRender,写在项目公共的js中。这里我先将所有的类对应的颜色类和图标定义好。css样式是根据需求自定义的

element-ui 的el-button组件中添加自定义颜色和图标的实现方法

然后再在指令中循环添加

element-ui 的el-button组件中添加自定义颜色和图标的实现方法

在使用el-button时只要添加对应的type值就能使用,对应的颜色和图标就会显示了

下面看下自定义elementui中的图标

前提

elementui图标库图标较少

当你想用elementui的控件而不想用它的图标时,就可以使用自定义的方式来实现

实现

el-icon-my-export为我自定义的图标命名

<el-button class="default" icon="el-icon-my-export">导出</el-button>
//使用图片来替换
//before属性中的content文本是用来占位的,必须有
//可以设置字体大小来确定大小
//使用visibility: hidden;来隐藏文字
.el-icon-my-export{
  background: url(/officeHouse/resources/images/export.png) center no-repeat;
  background-size: cover;
}
.el-icon-my-export:before{
  content: "替";
  font-size: 16px;
  visibility: hidden;
}

//如果直接使用字体图片
//直接在before属性设置对应的content就行
.el-icon-my-export{
  font-size: 16px;
}
.el-icon-my-export:before{
  content: "\e611";
}

content里面使用汉字大小会比较正常,但是汉字有时候会出现乱码,可以使用Unicode编码

//编码后的的替为 \u66ff
//书写到css里面的时候需要去掉u
.el-icon-my-export:before{
  content: "\66ff";
  font-size: 16px;
  visibility: hidden;
}

其他控件的图标替换大多如此,当然具体问题具体分析,我也不确定会不会有不同的情况

总结

以上所述是小编给大家介绍的element-ui 的el-button组件中添加自定义颜色和图标的实现方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
checkbox 多选框 联动实现代码
Oct 22 Javascript
Javascript attachEvent传递参数的办法
Dec 14 Javascript
js新闻滚动 js如何实现新闻滚动效果
Jan 07 Javascript
ie中js创建checkbox默认选中问题探讨
Oct 21 Javascript
jQuery选择id属性带有点符号元素的方法
Mar 17 Javascript
详解vue事件对象、冒泡、阻止默认行为
Mar 20 Javascript
使用Dropzone.js上传的示例代码
Oct 10 Javascript
JavaScript同源策略和跨域访问实例详解
Apr 03 Javascript
Node.js如何对SQLite的async/await封装详解
Feb 14 Javascript
解决vue-router 切换tab标签关闭时缓存问题
Jul 22 Javascript
Javascript call及apply应用场景及实例
Aug 26 Javascript
解决vant的Toast组件时提示not defined的问题
Nov 11 Javascript
angularjs通过过滤器返回超链接的方法
Oct 26 #Javascript
js使用formData实现批量上传
Mar 27 #Javascript
详解webpack打包时排除其中一个css、js文件或单独打包一个css、js文件(两种方法)
Oct 26 #Javascript
js自定义input文件上传样式
Oct 26 #Javascript
解决axios会发送两次请求,有个OPTIONS请求的问题
Oct 25 #Javascript
在Vue中使用axios请求拦截的实现方法
Oct 25 #Javascript
webpack4+react多页面架构的实现
Oct 25 #Javascript
You might like
PHP关于IE下的iframe跨域导致session丢失问题解决方法
2013/10/10 PHP
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
2014/04/08 PHP
PHP Reflection API详解
2015/05/12 PHP
php中通用的excel导出方法实例
2017/12/30 PHP
PHP绕过open_basedir限制操作文件的方法
2018/06/10 PHP
javascript 读取图片文件的大小
2009/06/25 Javascript
转换json格式的日期为Javascript对象的函数
2010/07/13 Javascript
De facto standard 世界上不可思议的事实标准
2010/08/29 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(三)情景对话中仿打字机输出文字
2013/01/23 Javascript
javascript实现简单的全选和反选功能
2016/01/05 Javascript
javascript运动框架用法实例分析(实现放大与缩小效果)
2016/01/08 Javascript
Avalon中文长字符截取、关键字符隐藏、自定义过滤器
2016/05/18 Javascript
解决微信浏览器Javascript无法使用window.location.reload()刷新页面
2016/06/21 Javascript
利用JS实现点击按钮后图片自动切换的简单方法
2016/10/24 Javascript
vue2.x+webpack快速搭建前端项目框架详解
2017/11/30 Javascript
JavaScript console的使用方法实例分析
2020/04/28 Javascript
mapboxgl实现带箭头轨迹线的代码
2021/01/04 Javascript
[01:01:31]2018DOTA2亚洲邀请赛3月29日小组赛B组 Mineski VS paiN
2018/03/30 DOTA
Python中的生成器和yield详细介绍
2015/01/09 Python
Python中利用sqrt()方法进行平方根计算的教程
2015/05/15 Python
Python编码爬坑指南(必看)
2016/06/10 Python
python selenium 获取标签的属性值、内容、状态方法
2018/06/22 Python
Python 图像对比度增强的几种方法(小结)
2019/09/25 Python
python多环境切换及pyenv使用过程详解
2019/09/27 Python
Python的几种主动结束程序方式
2019/11/22 Python
如何基于Python制作有道翻译小工具
2019/12/16 Python
python numpy 矩阵堆叠实例
2020/01/17 Python
python实现图片横向和纵向拼接
2020/03/05 Python
Anconda环境下Vscode安装Python的方法详解
2020/03/29 Python
使用HTML5中的contentEditable来将多行文本自动增高
2016/03/01 HTML / CSS
Java里面有没有全局变量?为什么?
2015/02/06 面试题
盛大二次面试题
2016/11/18 面试题
linux面试题参考答案(4)
2014/09/21 面试题
城管个人总结
2015/02/28 职场文书
MySQL 使用SQL语句修改表名的实现
2021/04/07 MySQL
windows server 2016 域环境搭建的方法步骤(图文)
2022/06/25 Servers