字体真棒显示Squares直到它被加载

时间:2018-03-14 10:44:24

标签: http fonts font-awesome

我正在使用这样的字体真棒:

<script defer src="https://use.fontawesome.com/releases/v5.0.8/js/all.js"></script>
  <script src="https://use.fontawesome.com/xxxxxxxx.js"></script>

和元素
  

然而,字体不会立即加载,在加载之前我同时看到丑陋的方块。任何方式围绕这个?

enter image description here

1 个答案:

答案 0 :(得分:1)

您遇到FOUT (flash of unstyled text),因为Font Awesome使用字体来显示其图标。在加载字体之前,您将看到后备字体中的图标(例如Arial)。你看到这个框是因为Font Awesome使用Unicode PUA codepoints将它们的图标映射到,而后备字体没有字符,并显示通用的“缺失字符”框。

解决方案是使用FontFaceObserver隐藏图标,直到Font Awesome字体加载完毕。更好的是使用SVG图像,因为图标字体是一种黑客攻击。 Font Awesome提供了它们,因此这可能是您的选择。