首页 > 其他分享 >iconfont图标字体库详细介绍

iconfont图标字体库详细介绍

时间:2024-09-03 16:25:38浏览次数:11  
标签:__ 图标库 svg iconfont 字体库 document 图标

概述

图标库在前端开发中应用十分广泛,图标库不仅会丰富美化界面的展示,语义化的图标库更能简洁明了地向用户传达某些信息,比如功能的特性和作用,引导用户,极大提高系统的易用性。在没有 UI 设计师的情况下,作为开发也可以自己打造图标库。而iconfont就是一种很好的选择。

iconfont

iconfont 介绍

iconfont是一个图标字体库,它允许用户将各种图标作为字体进行使用,十分方便地在网页和应用中展示图标。

iconfont 的特点
  • 图标字体:将图标作为字体使用,便于调整大小、颜色和样式,且不失真。
  • 自定义:用户可以上传自定义图标,生成自己的图标库。
  • SVG 支持:提供 SVG 格式图标,支持更高质量的图标显示。
  • 跨平台:兼容多种平台和浏览器,确保图标显示一致。
  • 便捷集成:通过 CSS 或 JavaScript 引入图标,简单易用

iconfont 使用步骤

iconfont的使用和管理也十分方便,使用前提是需要在其官方网站:iconfont 网站上注册一个账号并登录。主要步骤分为 1.制作图标字体库 2.使用图标字体库。

制作图标库

制作图标库过程如下

  • 打开网站 ——> 资源管理,先建一个项目,比如我的项目名称叫做 openlayers
    在这里插入图片描述
    在这里插入图片描述

  • 可以直接上传本地图片作为图标,也可以去进行搜索,比如搜索 CO2
    在这里插入图片描述

  • 在搜索结果页面,将想要的图标 添加到购物车

在这里插入图片描述
在这里插入图片描述

  • 这样就可以在 openlayers 项目看到港添加的新图标

在这里插入图片描述

使用图标库

iconfont的图标可以单个使用,也可以批量应用到项目中。批量应用又分三种方式:1.unicode 引用 2.font-class 引用 3.symbol 引用。这里以第三种方式为例。

使用前,从上面最后一张中可以看出,通过切换三种方式,在不同的方式下每个图标的名字都不一样,我们根据需要可以编辑每个图标的名称或者className
使用时,需要下载文件到本地,并在项目中引入即可。
在这里插入图片描述

使用步骤如下:

  • 引入下载文件中的iconfont.js文件
  • 设置 svg 的样式
.icon {
  width: 1em;
  height: 1em;
  vertical-align: -0.15em;
  fill: currentColor;
  overflow: hidden;
}
  • 在 html 中写如下代码
<svg class="icon svg-icon" aria-hidden="true">
  <use xlink:href="#icon-a-tree"></use>
</svg>
效果如下

在这里插入图片描述

iconfont 的原理

上面采用的第三种方式,和字体编码关系不大。引入的iconfont.js中代码比较好理解,主要就干了两件事 1.定义全局变量window._iconfont_svg_string_xxxxxx,该变量是一串 svg 代码,包含项目中每个图标的symbol 2.使用IIFE的模式将该 svg 字符串插入到 DOM 中去。

在这里插入图片描述

核心代码如下:

((e) => {
  var t = (a = (a = document.getElementsByTagName("script"))[
      a.length - 1
    ]).getAttribute("data-injectcss"),
    a = a.getAttribute("data-disable-injectsvg");
  if (!a) {
    var l,
      i,
      c,
      n,
      o,
      h = function (t, a) {
        a.parentNode.insertBefore(t, a);
      };
    if (t && !e.__iconfont__svg__cssinject__) {
      e.__iconfont__svg__cssinject__ = !0;
      try {
        document.write(
          "<style>.svgfont {display: inline-block;width: 1em;height: 1em;fill: currentColor;vertical-align: -0.1em;font-size:16px;}</style>"
        );
      } catch (t) {
        console && console.log(t);
      }
    }
    (l = function () {
      var t,
        a = document.createElement("div");
      (a.innerHTML = e._iconfont_svg_string_4550938),
        (a = a.getElementsByTagName("svg")[0]) &&
          (a.setAttribute("aria-hidden", "true"),
          (a.style.position = "absolute"),
          (a.style.width = 0),
          (a.style.height = 0),
          (a.style.overflow = "hidden"),
          (a = a),
          (t = document.body).firstChild
            ? h(a, t.firstChild)
            : t.appendChild(a));
    }),
      document.addEventListener
        ? ~["complete", "loaded", "interactive"].indexOf(document.readyState)
          ? setTimeout(l, 0)
          : ((i = function () {
              document.removeEventListener("DOMContentLoaded", i, !1), l();
            }),
            document.addEventListener("DOMContentLoaded", i, !1))
        : document.attachEvent &&
          ((c = l),
          (n = e.document),
          (o = !1),
          s(),
          (n.onreadystatechange = function () {
            "complete" == n.readyState && ((n.onreadystatechange = null), d());
          }));
  }
  function d() {
    o || ((o = !0), c());
  }
  function s() {
    try {
      n.documentElement.doScroll("left");
    } catch (t) {
      return void setTimeout(s, 50);
    }
    d();
  }
})(window);

标签:__,图标库,svg,iconfont,字体库,document,图标
From: https://blog.csdn.net/m0_46281382/article/details/141864989

相关文章

  • 文件夹图标工具类 - C#小函数类推荐
          此文记录的是修改文件夹图片的工具类。/***文件夹图标工具类AustinLiu刘恒辉ProjectManagerandSoftwareDesignerE-Mail:[email protected]:http://lzhdim.cnblogs.comDate:2024-01-1515:18:00使用方法:......
  • Centos7 离线安装字体库
    一、获取依赖包1、准备另一台能联网的Linux机器(要配置yum,建议配阿里的,网上很多教程,很简单!)2、安装获取依赖包的命令,然后新建一个文件来存放依赖包#安装获取依赖包的命令yum-yinstallyum-utils#新建一个文件来存放依赖包mkdir-p/root/font_rpm#执行获取相关依赖命令yumdo......
  • Linux系统添加软件快捷方式 (图标)
    Linux系统添加软件快捷方式(图标)背景在Linux系统下安装软件,安装软件后,常常缺少软件的快捷方式,不熟悉Linux系统的同学甚至不知道软件安装的位置,就算知道软件安装位置的同学也会因打开点开一大堆文件夹而头疼,因此,在Linux系统性为常用软件添置快捷方式显得尤为重要。具体方法方法......
  • android 14.0 Launcher3禁止拖拽app图标到第一屏
    1.概述在14.0系统rom进行定制化开发Launcher3中,会对Launcher3做些要求,比如现在的需求就是Launcher3第一屏的图标固定,不让其他屏的图标拖动到第一屏所以说这个需求和禁止拖拽图标到Hotseat类似,也是从WorkSpace.java里面寻找解决方案,然后实现相关功能2.Launcher3禁止拖拽app......
  • DrawGrid1自画图标和文本
    通过网盘分享的文件:DrawGrid.rar链接:https://pan.baidu.com/s/1ihZ1wFkPEVxr4v02dgMFVA提取码:81etprocedureTForm8.FormCreate(Sender:TObject);beginDrawGrid1.FixedRows:=0;DrawGrid1.FixedCols:=0;//去掉固定列DrawGrid1.RowCount:=3;......
  • 博客园-awescnb插件-geek皮肤优化--浏览器ico图标修改
    简介通过js方式自定义修改博客园-awescnb插件-geek皮肤下浏览器ico图标图标准备准备自定义的图标,上传至博客园个人的相册中代码注入定义自定义HTML:博客园->管理->设置->页脚HTML代码添加相关代码//更换ico图标functionupdateICO(){varlink=docum......
  • Cesium展示——图标 billboard 动态变化
    文章目录需求分析1.导入2.加载billboard3.点击图标展示对应name属性4.实现动态变化4.上代码需求Cesium展示——图标动态变化分析1.导入importspjkfrom'./assets/spjk.png';2.加载billboardfunctionaddBillboard(lon......
  • 博客园-awescnb插件-geek皮肤优化--浏览器ico图标修改
    简介通过js方式自定义修改博客园-awescnb插件-geek皮肤下浏览器ico图标图标准备准备自定义的图标,上传至博客园个人的相册中代码注入定义自定义HTML:博客园->管理->设置->页脚HTML代码添加相关代码//更换ico图标functionupdateICO(){varlink=document.qu......
  • IOS 图标文件 Assets.car 一键生成工具
    Android和IOS图标文件Assets.car一键生成工具通过此工具可以快速生成ios应用APP图标,并生成对应的Assets.car文件将Assets.car复制到ios项目的根目录,您的应用程序图标将被更改,此assets.car文件包含iosapp的图标,这是ios12和mac所需要的图标资源文件上传图片建议尺寸:1024x1024,......
  • uni-app里引入阿里彩色矢量图标(Symbol),却发现图标显示为黑白
     当使用uniapp并尝试引入阿里iconfont的彩色图标时,发现图标显示为黑白。原因是Fontclass模式不支持彩色图标。解决方法是下载Symbol模式的SVG文件,使用iconfont-tools进行转换,然后在项目中全局引入转换后的CSS文件,最终在组件中正确显示彩色图标。解决步骤如下:1、选择想要的......