前言
UI 设计给的切图是 .png
格式。但想与 Element UI icon 用法类似,方案如下。
实现
步骤一
准备图片
步骤二
新建文件,可使用 CSS 预处理语言 styl
或 scss
。
stylus 方式
文件 icon.styl
css
/* 定义一个混合 */
cfgIcon(w, h) {
display: inline-block;
width: w;
height: h;
background-size: w h;
margin-right: 8px;
}
.my-icon-loading {
background: url(./images/loading.png);
cfgIcon(10px,10px);
}
.my-icon-stop {
background: url(./images/stop.png);
cfgIcon(10px,10px);
}
.my-icon-start {
background: url(./images/start.png);
cfgIcon(10px,10px);
}
scss 方式
文件 icon.scss
css
/* 定义一个混合 */
@mixin cfgIcon($w, $h) {
display: inline-block;
width: $w;
height: $h;
background-size: $w $h;
margin-right: 8px;
}
.cfg-icon-loading {
background: url(./images/loading.png);
@include cfgIcon(10px,10px);
}
.cfg-icon-stop {
background: url(./images/stop.png);
@include cfgIcon(10px,10px);
}
.cfg-icon-start {
background: url(./images/start.png);
@include cfgIcon(10px,10px);
}
步骤三
全局导入。在 Vue
框架中直接导入即可。
vue
<template>
<div id="app">
<router-view/>
</div>
</template>
<style lang="stylus">
@import './css/icon.styl'
</style>
使用
el-button
html
<el-button icon="my-icon-start" class="el-button--active">启动服务</el-button>
<el-button icon="my-icon-stop">停止服务</el-button>
<el-button icon="my-icon-loading">重启服务</el-button>
直接用 <i>
html
<i class="cfg-icon-start"/>
<i class="cfg-icon-file"/>
<i class="cfg-icon-file"/>