在线引入 iconfont 特殊图标字体

一、前言

本节使用的例子是 阿里巴巴图标库 的图标

有时候我们想在自己写的网页上在线引入一个或多个图标字体
比如下面这种
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

上面是一些来自 阿里巴巴图标库 网站的图标

如果通过下载到本地然后通过本地引入的话,网页中的这些图标在别人查看的时候是无法显示的,因为对于别人来说,引入的路径是相对于我们自己的,别人是无法使用的,当然我们可以把图标放在我们网页的资源中,让别人在访问时就在后台下载下来然后应用到网页中,这样也可以达到查看的效果。

我们在这里不讨论这种方法,我们在这里只使用在线引入,只需要在我们的html网页结构中加入一些简单的配置

二、方法

1、进入 iconfont.cn 搜索自己想找的图标

我们想要一个 “收藏” 图标:
在这里插入图片描述

2、将图标在线引入到我们的网页中

我们点击 添加入库
在这里插入图片描述

然后点击右上角的这个小购物车
在这里插入图片描述
然后就弹出来一个界面,有我们刚才添加的图标,然后在界面中点击 添加至项目
在这里插入图片描述
然后我们点击这个 创建一个新项目
在这里插入图片描述
然后给项目起个名字点击 保存,保存后来到这个页面
在这里插入图片描述
我们使用 Unicode 的方式进行在线引入,所以直接点击 生成代码 ,生成代码如下
在这里插入图片描述
然后我们复制下来粘到我们的网页中,注意要放在 <style> 标签内

注意,这一步我们要在链接的最前面额外添加 "http:"
在这里插入图片描述

到这里我们的引入过程完毕

3、使用

我们使用伪元素 ::after 来显示我们的图标

首先复制一下图标的代码(类似于它的独有的id,用来标识它)

在这里插入图片描述
我们自定义了一个data-icon属性,然后我们将复制的代码(这里是&#xe600)粘贴到 data-icon 里面

下面是html代码
<body>
	<!-- 我们自定义了一个属性叫做data-icon -->
    <div id="shoucang" data-icon="&#xe600"></div>
</body>
下面是css代码
#shoucang::after 
{
	/* 下面这个是说我们的字体属于哪种字体,即它的family是谁 */
	font-family: "iconfont";
	/* 
	attr()函数代表引用某个值,
	这里我们引用的就是自定义的data-icon属性 
	*/
    content: attr(data-icon);
    
    /* 还可以通过font-size来调节图标的大小 */
    /* font-size: 100px;*/
}

然后就完成了,下面是运行截图
在这里插入图片描述

三、如果想引入更多图标的话

需要复制图标的代码,然后跟上面的操作一样,复制Unicode下面的 @font-face 代码,然后通过伪元素的 attr() 函数来引用到该图标的值以使用它

为了使上面的说明更清晰,我再给大家演示一下引入另一个图标 “雪花”,简单的步骤就不再给大家放图了

  1. 搜索雪花
  2. 添加到我们的一个项目中
  3. 然后复制Unicode下的那一串 @font-face 代码(这一串代码用来将字体引入到我们的网页中),粘到我们的网页结构中
    在这里插入图片描述
    注意,上面这一步我们要在链接的最前面额外添加 "http:"
    在这里插入图片描述
  4. 创建一个盒子,自定义属性 data-icon ,复制该图标的代码放在 data-icon
    在这里插入图片描述
    在这里插入图片描述
    然后我们就在线引入了两个图标!
    在这里插入图片描述

四、总结

  1. 进入 http://iconfont.cn 搜索我们想要的图标
  2. 将该图标添加到项目中
  3. 复制该图标Unicode选项中的那一串@font-face代码添加在我们的网页结构中(记得粘在 <style> 内),一定要把 http: 给加到链接前面
  4. 创建一个盒子,自定义属性 data-icon ,复制该图标的id代码放在 data-icon
  5. <style> 中对该盒子的伪元素进行设置,首先要写该图标的种类 font-family ,然后写 content: attr(data-icon) ,这两个是必写的,如果还想调整图标的其他属性你还可以模仿着字体的属性,比如我们想要调整图标的大小,那么我们就可以再加一个 font-size 就可以了!


本文所用到的例子的代码如下

	<!DOCTYPE html>
	<html lang="en">
	
	<head>
	    <meta charset="UTF-8">
	    <meta http-equiv="X-UA-Compatible" content="IE=edge">
	    <meta name="viewport" content="width=device-width, initial-scale=1.0">
	    <title>关于iconfont图标的在线引入</title>
	
	    <style>
	        /* 这是收藏图标的引入 */
	        @font-face {
	            font-family: 'iconfont';
	            /* project id 3157729 */
	            src: url('');
	            src: url('?#iefix') format('embedded-opentype'),
	                url('http://at.alicdn.com/t/font_3157729_bc27lb64ujg.woff2') format('woff2'),
	                url('http://at.alicdn.com/t/font_3157729_bc27lb64ujg.woff') format('woff'),
	                url('http://at.alicdn.com/t/font_3157729_bc27lb64ujg.ttf') format('truetype'),
	                url('#iconfont') format('svg');
	        }
	
	        /* 这是雪花图标的引入 */
	        @font-face {
	            font-family: 'iconfont';
	            /* Project id 3157729 */
	            src: url('http://at.alicdn.com/t/font_3157729_f3xi6mthm9.woff2?t=1642863665994') format('woff2'),
	                url('http://at.alicdn.com/t/font_3157729_f3xi6mthm9.woff?t=1642863665994') format('woff'),
	                url('http://at.alicdn.com/t/font_3157729_f3xi6mthm9.ttf?t=1642863665994') format('truetype');
	        }
	
	        
	        #shoucang::after {
	            font-family: "iconfont";
	            content: attr(data-icon);
	        }
	
	        #xuehua::after {
	            font-family: "iconfont";
	            content: attr(data-icon);
	        }
	    </style>
	</head>
	
	<body>
	    <div id="shoucang" data-icon="&#xe600"></div>
	    <div id="xuehua" data-icon="&#xe612"></div>
	</body>
	
	</html>

关于在线引用图标的方法还有好几种,以上是我看各博客以及百度总结的其中一种,本文仅仅给大家提供一个简单明了的参考让大家更容易操作,各位有好的办法可以留言告诉我一起学习!

### 如何在 Vue 项目中引入 IconFont 字体图标并与其文本和 API 集成 #### 安装依赖项 为了确保开发环境已经准备好,在命令行工具中执行以下指令来全局安装 `@vue/cli`,这一步骤能够帮助确认 Node 环境是否正确安装[^2]。 ```bash npm install -g @vue/cli ``` #### 创建或进入现有 Vue 项目 对于新创建的 Vue 应用程序,可以通过如下命令快速搭建: ```bash vue create my-project cd my-project ``` 而对于已有项目,则直接切换到对应的目录即可继续下一步操作。 #### 引入 IconFont 图标库 前往 [阿里巴巴矢量图标库](https://www.iconfont.cn/) 或其他支持自定义下载的图标的网站挑选所需图标,并按照提示生成适用于 Web 的 CSS 文件。接着将获取到的链接地址加入至项目的公共样式文件(如 `public/index.html` 中 `<head>` 标签内),或者通过 import 方式加载到 main.js 中: ```javascript // main.js import &#39;@/assets/iconfont.css&#39;; // 假设已把 iconfont.css 放置于此路径下 ``` 也可以利用 npm/yarn 来管理第三方资源包的形式完成相同目的: ```bash npm i --save-dev @iconify/vue ``` 随后可以在组件内部按需调用特定类名实现渲染效果。 #### 组件编写实例 下面给出一段简单的例子展示如何在一个名为 `IconText.vue` 的单文件组件里结合使用 IconFont 和来自服务器端的数据接口返回的内容。 ```vue <template> <div class="container"> <!-- 动态绑定 :class 属性 --> <i v-bind:class="[baseClass, iconName]" aria-hidden="true"></i> {{ message }} </div> </template> <script> export default { name: &#39;IconText&#39;, data() { return { baseClass: &#39;iconfont&#39;, // 所有使用的 IconFont 类前缀 iconName: &#39;&#39;, // 存储具体图标的名称部分 message: &#39;&#39; // 显示的消息字符串 } }, mounted(){ this.fetchData(); }, methods:{ async fetchData(){ try{ const response = await fetch(&#39;http://example.com/api/data&#39;); let result = await response.json(); // 更新状态变量 this.iconName = result.icon; this.message = result.text; // 使用 vm.$set 方法更新数组中的元素以确保响应性 if (Array.isArray(this.someArray)) { this.someArray.forEach((item, index) => { this.$set(this.someArray, index, {...item}); }); } } catch(error){ console.error("Error fetching the resource:", error); } } } } </script> <style scoped> /* 自定义样式 */ .container { display: flex; align-items: center; } .iconfont:before { margin-right: .5em; /* 设置适当间距 */ } </style> ``` 此段代码展示了怎样从远程服务读取 JSON 数据并将其中携带的信息映射给视图层上的相应位置;同时注意到了当处理复杂数据结构比如列表时应采用 `$set()` 函数保证变更被侦测到从而触发 UI 刷新机制[^1]。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值