html - 如何使用 rel=preload 预加载素材图标?

标签 html css fonts icons preload

我正在尝试使用 google lighthouse 优化我的网页。

报告说在导入 Material Design 图标的链接上使用 rel=preloads。

我尝试使用语法预加载它们。

<link rel="preload" href="" as="style" crossorigin>

我也尝试使用 as 字体预加载。类型为 woff、woff2 和 ttf。它们似乎都不起作用。我还添加了 crossorigin 和 crossorigin="anonymous"但仍然没有进展。

enter image description here

这些是我的实际链接。我想导入它们。

<link rel="preload" href="https://cdnjs.cloudflare.com/ajax/libs/material-design-iconic-font/2.2.0/css/material-design-iconic-font.min.css" as="style">
<link rel="preload" href="https://fonts.googleapis.com/icon?family=Material+Icons" as="font" type="font/woff" crossorigin>

应该如何使用带有预加载的这些链接?

最佳答案

我希望 Google 在它的字体指南中准备好预加载信息,但只有普通的 CSS 示例 [1]。

无论如何,我通过添加破解了解决方案:

<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Material+Icons&amp;display=swap" media="print" onload="this.media='all'" crossorigin>

(对于不支持的预加载,这似乎是一个很好的回退机制,所以无论如何都有它很好)。

此外,为了摆脱图标名称的“闪烁”,我使用代码点 [3]。像那样:

<i class="material-icons">&#xE87C;</i> (而不是 <i class="material-icons">face</i> )。

这样,在字体加载期间,我得到几乎看不见的符号,如 □,而不是完整的“脸”。

[1] - https://google.github.io/material-design-icons/

[2] - https://csswizardry.com/2020/05/the-fastest-google-fonts/

[3] - https://github.com/google/material-design-icons/blob/master/iconfont/codepoints

关于html - 如何使用 rel=preload 预加载素材图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51874007/

相关文章:

javascript - 单击按钮时如何显示 hr

javascript - 将 HTML 文本区域值转换为 jqmath 公式

html - IE 9 绝对定位未按预期运行 - <img> 底部位于中心

ios - 自定义字体无法在 swift 中以编程方式工作

html - 如何全局连接页面上的字体?

windows - 符号 § 的 Eclipse 问题

html - 只加载一些 Bootstrap 元素

javascript - 有没有办法在 jQuery 中检测隐式与显式 CSS 高度值?

css - 媒体查询适用于 Inspector 但不适用于现场

javascript - SVG defs 多个元素 CSS 改一个