
使用 ZSFT 免费开源字体 CDN 替换全站字体
ZSFT 是一个为开源字体提供免费的 CDN 服务,目前共收录 348 款字体(截止 2024/07/20),有国内外服务器,为开源字体提供免费的 CDN,而这其中就有我个人非常喜欢的更纱黑体(Sarasa Gothic),并且它还使用了 cn-font-split 技术(将大型字体文件分解为小文件,使用一个 css 导入,按需加载极大提升加载速度)加速了字体加载,下面详细介绍一下如何在 Halo 中使用代码注入实现全站字体替换。
找到你喜欢的字体
在 ZSFT 官网(https://zsft.zeoseven.com/)右上角搜索找到你喜欢的字体,然后点进它的页面(以更纱黑体为例):
现在我们得到了这样一串代码:
但这样还不能实现强制替换的效果,只是在 CSS 中增加了一个可用字体。
要实现强制替换也非常简单,加一个 !important
即可:
别忘了在外边加上 style 的框框,不然不能被作为 html 识别。
这里顺带也替换了 CDN 网址为国内服务器的网址。
在 Halo 中进行代码注入
进入 Halo 后台,导航到设置→代码注入→全局 head 标签:
输入这串神奇的代码,别忘了保存。
然后回到你的 Halo 主页,就发现字体已经被替换了,而且加载速度非常快,总算可以摆脱微软雅黑了~
但同时又出现了一个问题:CodeBlock 的字体也被替换了,而代码我们当然希望使用等宽字体而不是常规屏显字体,这就需要再加一些 CSS 规则了。
在 ZSFT 找到你想要的等宽字体,这里我直接选用同一家的等距更纱黑体。
然后就需要打开 F12 开发者选项,找一下是哪些 selector 被错误地强制替换了,然后写 CSS 把这些强制替换为等宽字体即可。
如果发现替换不完全,再用 F12 找一找,例如我使用的是 Halo 博客 + Hao 主题,需要替换所有 language-
开头以及 token
开头的 class 的字体,最终代码如下:
再次回到文章页面,可以看到字体已经被正确替换了,大功告成~
- 感谢你赐予我前进的力量