m-icon 图标
简述
基于自定义字体图标,支持引入您自己的图标库。
注意
请以 uni_modules/m-unix 与本文为准;各端差异以 uni-app 与各平台官方文档为准。涉及隐私能力(相册、定位、剪贴板、手机号等)需在 manifest 与后台完成配置。
平台差异说明
| App(vue) | App(nvue) | H5 | 小程序 |
|---|---|---|---|
| √ | √ | √ | √ |
演示地址
与线上 H5 演示基座 分包一致(文档站右下角预览 iframe 亦指向同一路径)。
| 类型 | 地址 |
|---|---|
| 分包路径 | pages_demo/icon/icon |
| 线上 H5(hash) | 打开演示 |
基本使用
uvue
<template>
<view>
<m-icon name="arrow-right" color="#333333" size="40"></m-icon>
</view>
</template>Props
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
name | 图标名称,对应字体图标里的 class,自动添加 .iconfont.icon-${name} | string | '' |
size | 图标大小,单位 rpx | number | 40 |
color | 图标颜色 | string | - |
bold | 是否加粗 | boolean | false |
Events
| 事件名 | 说明 |
|---|---|
click | 点击图标时触发 |
插槽
| 名称 | 说明 |
|---|---|
default | 自定义图标内容 |
示例
基础用法
uvue
<m-icon name="search" size="32" color="#909399"></m-icon>不同颜色
uvue
<m-icon name="close" color="#f56c6c" size="40"></m-icon>说明
在项目中引入自定义字体图标
项目中已内置了字体文件,存放于项目根目录 font_5145617_po0co0ipc2/。
使用步骤:
iconfont.ttf放到宿主工程static/iconfont/iconfont.ttf(与样式里引用的路径一致;若使用本库自带字库,需与m-icon内 Unicode 映射匹配,详见uni_modules/m-unix/readme.md「图标字体」)。- 在
App.uvue(或根样式)中引入@import '@/uni_modules/m-unix/index.scss';(已包含.iconfont等基础样式)。若改用自己下载的阿里 iconfont,可在全局样式中额外声明@font-face,例如:
scss
@font-face {
font-family: "iconfont"; /* Project id 5145617 */
src: url('/static/iconfont/iconfont.woff2?t=1774251161162') format('woff2'),
url('/static/iconfont/iconfont.woff?t=1774251161162') format('woff'),
url('/static/iconfont/iconfont.ttf?t=1774251161162') format('truetype');
}
.iconfont {
font-family: "iconfont" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}- App / H5:字体加载
uni.loadFontFace。小程序端对/static等路径限制多,包内已通过libs/css/mp.scss的@font-face引用 TTF,一般无需在App.uvue再调loadFontFace。非小程序请在App.uvue的onLaunch(或等价入口)中配合#ifndef MP调用,例如:
uts
onLaunch(() => {
// #ifndef MP
uni.loadFontFace({
family: 'iconfont',
source: 'url("/static/iconfont/iconfont.ttf")',
success: () => {
console.log('图标字体加载成功')
},
fail: (err) => {
console.log('图标字体加载失败', err)
}
})
// #endif
})- 完整图标映射表见本仓库
docs/mms-unix/mms-icon-font/iconfont.css(或iconfont.json)。与安装顺序、main.uts等配套的完整约定以uni_modules/m-unix/readme.md「图标字体(m-icon/ iconfont)」为准。
已下载的图标清单(部分示例)
| Class 名称 | Unicode |
|---|---|
icon-add | \e665 |
icon-arrow-down | \e66a |
icon-arrow-right | \e66c |
icon-arrow-left | \e66f |
icon-ashbin (删除) | \e66b |
icon-close | \e679 |
icon-calendar | \e67b |
icon-camera | \e675 |
icon-delete | \e683 |
icon-download | \e68d |
icon-edit | \e693 |
icon-home | \e6a2 |
icon-search | \e6ca |
icon-setting | \e6d4 |
icon-success | \e6d1 |
icon-user | \e6e0 |
icon-upload | \e6e1 |
icon-warning | \e6e4 |
完整列表请查看 font_5145617_po0co0ipc2/iconfont.css 文件。
确保你的 css 类名规则是 .iconfont.icon-name,m-icon 组件会自动拼出正确的类名。
