如何在网页加载完成后再加载字体?

2015-11-16 11:19:05 +08:00
 pseudo

网页上有自定义字体,发现如果直接用 @font-face 定义的话会先等字体下载完成再显示内容,这样有可能导致体验不佳。看到一些网站是先加载内容再加载字体,请问有什么办法可以实现?

3914 次点击
所在节点    程序员
11 条回复
fuermosi777
2015-11-16 11:19:59 +08:00
http://www.youziku.com/ 有一种方式
pseudo
2015-11-16 11:25:55 +08:00
@fuermosi777 谢谢,不过我是用的自定义英文字体,大概几百 K ,是个很尴尬的大小
oott123
2015-11-16 11:42:26 +08:00
不配合 js 感觉做不到
或许可以试试把字体的 css 引入放到页尾?
ChiChou
2015-11-16 11:42:45 +08:00
js 访问 document.styleSheets 对象可以动态修改 CSS 样式,可以尝试在 css 里不写 font-family ,然后给 document 的 ready 里动态添加?
ChiChou
2015-11-16 11:43:21 +08:00
@oott123 记得 css 放页尾应该不起作用
Sivan
2015-11-16 11:47:31 +08:00
可以用 font loader 。如果不想通过 js 实现,也可以把字体转 base64 存一个单独的 CSS 加载。

具体技术讨论可以自行搜索关键词「 FOUT 」、「 FOIT 」
Sivan
2015-11-16 11:48:43 +08:00
@ChiChou 都有效的
Daniel65536
2015-11-16 13:14:03 +08:00
skylancer
2015-11-16 14:08:24 +08:00
@ChiChou 卧槽.. 居然见到了吃抽,还以为凑巧同名 ID 结果一看 0GiNr- -..
pseudo
2015-11-16 15:03:07 +08:00
@oott123
@ChiChou
@Sivan
@Daniel65536
十分感谢各位!
ChiChou
2015-11-16 17:24:53 +08:00
@Sivan 我意思是对阻塞页面加载这个问题不起作用

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/236480

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX