首页 > 其他分享 >H5前端特殊艺术字体文件太大,可通过font-spider压缩

H5前端特殊艺术字体文件太大,可通过font-spider压缩

时间:2023-12-29 11:11:07浏览次数:28  
标签:url YaHeiBold spider H5 html 字体 font

原理:

1.爬行本地 html 文档,分析所有 css 语句
2.记录@font-face语句声明的字体,并且记录使用该字体的 css 选择器
3.通过 css 选择器的规则查找当前 html 文档的节点,记录节点上的文本
4.找到字体文件并删除没被使用的字符
5.编码成跨平台使用的字体格式

简而言之:就是爬出你项目中所使用的文字保留起来,删除没被使用到的文字,并重新打包。

该如何使用字蛛?

一、安装node.js

如果没有node,请安装安装node.js(这里不做详细介绍,可自行百度)。如果已经安装请看下一步。

二、安装字蛛

有vscode编辑器的可以在项目文件夹中打开终端,输入npm install font-spider -g
也可以打开Node.js command prompt如下图所示,并输入命令:npm install font-spider -g 回车执行


 

 

npm install font-spider -g

 

 

下图显示安装成功:有一点报错,不影响使用  

 

三、使用字蛛

1、新建一个font.html页面,下面是font.html中的内容。要根据自己文件夹中有的字体去引入,但是ttf格式的字体是一定要存在的。

注意:

  1. @font-face 中的 src 定义的 .ttf 文件必须存在,其余的格式将由工具自动生成。
  2. 开发阶段请使用相对路径的 CSS 与 WebFont
 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        /*声明 WebFont*/
        @font-face {
        font-family: 'YaHeiBold';
        src: url('./YaHeiBold.eot');
        src:
            url('./YaHeiBold.eot?#font-spider') format('embedded-opentype'),
            url('./YaHeiBold.woff2') format('woff2'),
            url('./YaHeiBold.woff') format('woff'),
            url('./YaHeiBold.ttf') format('truetype'),
            url('./YaHeiBold.svg') format('svg');
        font-weight: normal;
        font-style: normal;
        }
    </style>
</head>
<body>
    
</body>
</html>

 

 

2、html文件构建好后,在终端输入font-spider + 你的font.html的位置,然后回车即可。
font-spider ./demo/*.html
页面依赖的字体将会自动压缩好,原 .ttf 字体会备份
下面是我路径:  

 

3、有可能你会出现报错,像下图这样的。出现这样情况就是font.html中的字体路径错了。

 

4、压缩成功后会自动生成.font-spider文件夹,可以看到原来的字体体积已经小了很多。前面的对比图就是效果。
5、最后一步,在css中引入已经压缩好的字体就行。
 

 

最后要注意,当网页的字体改变时,要重新生成。



标签:url,YaHeiBold,spider,H5,html,字体,font
From: https://www.cnblogs.com/zgzy/p/17934360.html

相关文章

  • uniapp打包h5中的input disabled问题
    uniapp打包h5后,input如果加了disabled属性,那么在360浏览器上@click事件不生效<inputtype="text"class="input"placeholder="请选择":value="type_name":disabled="true"@click="showType">可以换成view元素显内容和点击事件<viewclas......
  • uniapp打包h5中的input disabled问题
    uniapp打包h5后,input如果加了disabled属性,那么在360浏览器上@click事件不生效<inputtype="text"class="input"placeholder="请选择":value="type_name":disabled="true"@click="showType">可以换成view元素显内容和点击事件<viewclas......
  • import { EventEmitter } from 'eventemitter3'; class H5SSE extends EventEmitter
    import{EventEmitter}from'eventemitter3';classH5SSEextendsEventEmitter代码解析通过eventemitter3源码学习Javascript设计模式:发布-订阅(观察者模式)发布-订阅模式又叫观察者模式,它定义对象之间一对多的关系,当一个对象的状态发生变化时,所有依赖它的对象都将得到通知......
  • CH59X/CH58X/CH57X 片上flash的使用
    以CH592F为例;在使用时先看手册对code和data区的划分一、DataFlash的读写的操作 先看几个操作dataflash的API(读擦写);/***@briefreadData-Flashdatablock**@paramStartAddr-Addressofthedatatoberead.//要读取的数据的地址,传入的的地址是相对地址所......
  • h5 video 暂停后切前后台导致视频提前
    背景使用h5video开发的页面,对于需要视频定帧的场景,会通过调用video.pause()来使视频暂停,然而,当切到后台再重新切回前台,video会重新出发timeupdate事件,并将当前的时间提前1-2s左右,从而导致视频定的帧改变。分析该问题可能是浏览器内部原因,因为它并没有重新触发play......
  • Uniapp判断运行环境,小程序-公众号-H5-APP
    直接上代码 //#ifdefH5varapp_type=this.isWeiXin()?'wechat':'h5';varapp_type_name=this.isWeiXin()?'微信公众号':'H5';//#endif//#ifdefMP-WEIXINvarapp_ty......
  • CH582,CH583,CH32V208等IC低功耗蓝牙系列2.4G例程RF_PHY/RF_PHY_Hop配对示例
    RF_PHY和RF_PHY_Hop两个例程均可以采用这种思路,甚至可以组合使用,比如RF_PHY用来配对,RF_PHY_Hop用来数据通讯,思路简介:该例程只要收发双方的地址,跳频频道等基础配置项一致即可进行无线通讯,因此可以衍生出其中一种较简单的配对思路,即:1、初始化代码中使用默认地址,例如0x71764129,这样......
  • Qt弹框QDialog、QMessageBox、QColorDialog、QFileDialog、QFontDialog、QProcessDial
    一、概述汇总一下Qt中的弹框:QDialog(自定义)、QMessageBox、QColorDialog、QFileDialog、QFontDialog、QProcessDialog 二、代码示例及演示效果1.自定义弹框(啥都没有的弹框,如果想要自定义内容,直接继承QDialog进行扩展)QDialog*dialog=newQDialog;dialog->setWin......
  • H5网页流媒体播放器EasyPlayer播放H.265录像时,无法倍速回放是什么原因?
    流媒体播放器EasyPlayer是我们流媒体组件系列中关注度较高的产品,经过多年的发展和迭代,目前已经有多个应用版本,包括RTSP版、RTMP版、Pro版,以及js版,其中js版本作为网页播放器,受到了用户的广泛使用。在功能上,EasyPlayer支持直播、点播、录像、快照截图、MP4播放、多屏播放、倍数播放......
  • 微信小程序使用iconfont通过transfonter转化成只有css样式的方式
    1.通过iconfont 网站选择对应图表加入购物车,然后添加到自己对应项目中,现在至本地。2.解压下载到本地的文件 3.进入 transfonter 后,点击Addfonts按钮,将上图中红色框中的文件上传上去,勾选启用 Base64encode ,点击Convert按钮,完成后点击下载Download 4.解压转......