样式表字体src URL解析及Forma DJR字体base64生成方法
CSS内嵌字体Base64配置问题解答
1. src URL中base64字段后的字符串是什么
你代码里base64,后面的长字符串,是对应WOFF2字体文件的Base64编码结果。
- 这段写法属于Data URL资源引入方式,没有调用外部独立字体文件,是把字体的二进制文件内容通过Base64编码规则转成纯文本,直接内嵌在CSS代码里。
- 这种引入方式的优势是加载CSS时不需要额外发起字体文件的网络请求,能避免字体加载延迟导致的文字闪烁、FOIT(隐藏文字闪烁)问题;缺点是会增大CSS文件体积,字体资源无法单独缓存。
- 字符串前的
data:application/font-woff2;charset=utf-8;base64,是Data URL的固定声明头,用来告诉浏览器后续内容的类型、编码规则,逗号之后的长串就是转码后的字体资源本体。
2. 生成Forma DJR字体对应Base64编码的操作方法
注意:Forma DJR为商业授权字体,请先确认你已取得对应使用范围的合法授权后再操作
具体操作步骤如下:
- 第一步:准备好对应字重、字符集的Forma DJR字体文件,Web端优先选用WOFF2格式(同字体下WOFF2体积比TTF/OTF小30%以上,现代浏览器全兼容),如果手里只有TTF/OTF格式文件,可以先转成WOFF2格式压缩体积。
- 第二步:将准备好的字体文件转成Base64编码,可根据自己的使用场景选方法:
- 日常前端开发场景:如果用Vite、Webpack等构建工具,不需要手动转码,直接在CSS里写本地字体文件的相对路径引用,配置好对应的字体加载规则,构建环节工具会自动把符合体积阈值的字体转成Base64内嵌格式。
- 手动转码场景:不需要借助第三方在线工具,用系统自带功能就能完成:
- Windows系统:打开PowerShell,执行命令
[Convert]::ToBase64String([IO.File]::ReadAllBytes("字体文件的本地绝对路径")),终端输出的内容就是需要的编码串。 - macOS/Linux系统:打开终端,执行命令
base64 -i 字体文件的本地路径,终端输出的内容就是对应编码串。
- Windows系统:打开PowerShell,执行命令
- 第三步:替换CSS内容:把原有src属性里逗号后的旧编码串替换为新生成的Forma DJR编码,同时修改
font-family的自定义名称,保存后即可正常调用。
排错提示:如果替换后字体不生效,先检查Data URL头的MIME类型和字体格式是否匹配:WOFF格式对应
application/font-woff,TTF格式对应application/x-font-ttf,MIME类型写错会导致浏览器无法识别字体资源。
内容的提问来源于stack exchange,提问作者Madhurya reddy
相关产品推荐
相关产品推荐

