[Vue]如何在Vue项目中使用阿里的Iconfont 图标

iconfont 的三种使用方式

1. Unicode

个人习惯在src目录下新建一个icon文件夹存放下载的所有样式文件
然后在src目录下新建style.css文件统一管理样式

@font-face {
  font-family: "iconfont";
  src: url('./icon/iconfont.eot'); /* IE9*/
  src: url('./icon/iconfont.eot#iefix') format('embedded-opentype'), /* IE6-IE8 */
  url('./icon/iconfont.woff') format('woff'), /* chrome, firefox */
  url('./icon/iconfont.ttf') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
  url('./icon/iconfont.svg#iconfont') format('svg'); /* iOS 4.1- */
}
.iconfont {
 font-family:"iconfont" !important;
 font-size:56px;
 color: red;
 font-style:normal;
 -webkit-font-smoothing: antialiased;
 -webkit-text-stroke-width: 0.2px;
 -moz-osx-font-smoothing: grayscale;
}

在 main.js 中引入style.css

import './style.css'

现在即可挑选相应图标并获取字体编码,应用于页面

<i class="iconfont">&#xe627;</i>

2. Font-class

使用方式与使用unicode相似,只需修改下style.css文件

第一种, 在 main.js 中引入style.css

import './style.css'

修改下style.css文件

@import './icon/iconfont.css'

第二种,直接在main.js ( icon 文件夹放在css文件夹里面 )

import './css/icon/iconfont.css'

即可用font-class的方式在页面使用图标

3. Symbol

区别于unicode与font-class,使用symbol需要引入的是js文件,此方法生成的图标可以不用发送woff|eot|ttf|这些很多个字体库请求了,兼具前两种方法的优点,是正真的矢量图标,推荐使用。
在main.js中引入图标js文件

import './icon/iconfont.js'

在style.css文件中写入图标样式(同样别忘了main.js文件中引入)

.icon {
  width: 1em; height: 1em;
  vertical-align: -0.15em;
  fill: currentColor;
  overflow: hidden;
}

即可用symbol的方式在页面使用图标

<svg class="icon" aria-hidden="true">
  <use xlink:href="#icon-fenxiang"></use>
</svg>

补充:自己动手封装Icon组件
组件模板 icon-svg.vue

<template>
  <svg class="svg-icon" aria-hidden="true">
    <use :xlink:href="iconName"></use>
  </svg>
</template>

<script>
export default {
  name: 'icon-svg',
  props: {
    iconClass: {
      type: String,
      required: true
    }
  },
  computed: {
    iconName() {
      return `#icon-${this.iconClass}`
    }
  }
}
</script> 
<style>
.svg-icon {
  width: 1em;
  height: 1em;
  vertical-align: -0.15em;
  fill: currentColor;
  overflow: hidden;
}
</style>

全局引入

import IconSvg from '@/components/icon-svg'

//全局注册icon-svg

Vue.component('icon-svg', IconSvg)

现在就可以优雅的在项目中使用图标啦,快去试试吧~

<icon-svg icon-class="fenxiang" />

除了阿里图标,还可以用icomoon字体图标网站

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 安装iconfont图标库 首先需要在iconfont官网下载需要使用图标库,并将其导入到项目。这里以阿里巴巴矢量图标库为例,下载完成后会得到一个名为“iconfont”的文件夹,将其复制到项目的public目录下。 2. 在main.js引入iconfont图标库 在main.js,我们需要引入iconfont图标库并将其挂载到Vue实例。具体代码如下: ``` import Vue from 'vue'; import App from './App.vue'; import './public/iconfont/iconfont.css'; // 引入iconfont图标Vue.config.productionTip = false; new Vue({ render: h => h(App), }).$mount('#app'); ``` 3. 在vue组件使用iconfont图标vue组件使用iconfont图标需要先在html创建一个标签,然后将需要使用图标类名赋值给该标签的class属性。 例如,我们需要使用阿里巴巴矢量图标的“搜索”图标,其类名为“icon-search”,则在vue组件使用图标的代码如下: ``` <template> <div> <i class="iconfont icon-search"></i> </div> </template> ``` 注意,由于使用iconfont图标库,需要将该标签设置为“i”标签。同时,需要将图标的类名添加到“class”属性。 4. 样式调整 使用iconfont图标时,可以通过修改css样式来调整图标的大小、颜色、旋转等。 例如,要将搜索图标的大小调整为30px,颜色调整为红色,代码如下: ``` <template> <div> <i class="iconfont icon-search" style="font-size: 30px; color: red;"></i> </div> </template> ``` 通过在标签内部添加style属性,可以直接对图标进行样式调整。 以上就是在vue使用iconfont图标的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值