font-display
是一个新的CSS属性,允许开发人员控制字体的呈现方式,具体取决于它们加载的速度是否足够快。关于它的文章有几篇:
他们都没有提到图标字体。该规范确实有一个示例提到block
值的图标字体,但对我来说使用它没有意义:
'块'
为字体提供短block period(大多数情况下建议使用3s)和无限swap period。
如果我正确理解了规格,这意味着如果在“短块期间”之后没有加载图标,则会使用后备字体,导致其位置出现随机字母。
如果我使用optional
值,则随机字母将永远不会出现,但如果图标未在“非常小的块周期”中加载,则图标也不会出现。
似乎没有给出无交换的无限块周期的值(因此除非字体加载,否则它将显示不可见的文本)。这有什么原因并且有解决方法吗?
答案 0 :(得分:1)
font-display: block;
正如您所评论的,block
仍然有一个swap
期间;因此它仍然会渲染直到加载。
想听到很不幸的事吗?我们已经提到了
font-display: block;
。您是否会认为,嗯,直到自定义字体加载后才阻止了文本的呈现?没有。它仍然有一个交换期。对于图标字体之类的东西来说,这是一件完美的事情,除非加载自定义字体,否则图标(可能)没有任何意义。 las,没有针对此的字体显示解决方案。
考虑替代方案:
我也去过那里。如果有机会,可能需要切换到 SVG 以获得图标。与字体图标相比,它具有一些优势:SVG is better at pretty much everything than icon fonts。
网络字体专家甚至Zach Leatherman都对他非常著名的Comprehensive Guide to Font Loading Strategies对此有意见。
本指南不适用于具有不同加载优先级和使用案例的字体图标。另外,SVG可能是一个更好的长期选择。