当前位置: 首页 > 面试题库 >

通过内联CSS加载外部字体

阴禄
2023-03-14
问题内容

是否可以通过内联CSS加载外部字体?

注意:我 不是 在谈论使用带有@font-face定义的外部CSS文件,而是类似以下内容:

<h1 style="font-family:myfont;
    src:('http://example.com/font/myfont.tff')">test</h1>

问题答案:

是否可以使用内嵌CSS加载外部字体?不适用于外部CSS文件[....]。

是的,您可以按照Stephen Scaff的本文中的文章所示对base64字体进行编码,然后将其放到style页面的块中,以避免外部请求。

也可以按照您所描述的浏览器是否支持的方式使用此技术。

<style>
  @font-face {
    font-family: 'PT Sans';
    font-style: normal;
    font-weight: normal;
    src: local('PT Sans'), local('PTSans-Regular'),
      url(data:application/font-woff2;charset=utf-8;base64,d09GRgABAAAAAHowABMAAAAA+OAA) format('woff2');
  }
  @font-face {
    font-family: 'PT Serif';
    font-style: normal;
    font-weight: normal;
    src: local('PT Serif'), local('PTSerif-Regular'),
      url(data:application/font-woff2;charset=utf-8;base64,d09GRgABAAAAAIQYABMAAAAA/MAA) format('woff2');
  }
</style>

每个现代的浏览器都支持WOFF2,因此您应该 _仅_在可预见的将来使用它。此外,这种技术将提高你的速度得分,但 会降低性能的整体(甚至是第一页面加载),编码的base64除非你是唯一的关键页面资产(如倍以上显示的字体字形的)和[异步加载的休息。

在性能方面,目前最好的选择是使用Brotli压缩,并使用将webfont样式表向下传递。



 类似资料:
  • 问题内容: 我有一个使用jQuery加载到Yahoo弹出窗口中的Ajax控件。 我只是使用一个简单的.get请求来加载HTML。 现在的问题是,加载的内容需要自己的CSS,而CSS实际上是动态创建的。我可以选择内联或使用外部CSS样式表。 在Chrome中进行的测试表明,使用上述代码将通过AJAX加载的css添加到DOM时未进行评估/应用。 当Internet Explorer仅停留在DOM中时,

  • 问题内容: 我正在寻找一个Java库,该库可以根据其ID / class属性将外部文件与文档内联。 我找到了 jStyleParser, 但不确定这是否适合我。我似乎无法理解它是否可以内联HTML中的元素。文档和示例不是我所期望的。 有没有人可以回答这个问题,或者有另一个图书馆可以解决这个问题? 谢谢 问题答案: 您可以尝试CSSBox。只需查看软件包中包含的 ComputeStyles 演示(有

  • 问题内容: 我们可以将CSS编写为以下类型: 内联CSS 嵌入式CSS 外部CSS 我想知道每种方法的优缺点。 问题答案: 正如我所看到的,这都是关于在管线中需要CSS的位置。 1.内联CSS 优点: 非常适合快速修复/原型制作和简单测试,而无需在.css文档和实际HTML文件之间来回切换。 优点: 由于可能的垃圾邮件/滥用行为,许多电子邮件客户端不允许使用外部.css引用。嵌入可能会有所帮助。

  • 这是我正在研究的一个更大问题的一个简短的子问题。 为什么我不能通过第8行outer class中的inner class的实例访问outer类字段? 字段在内部类中可见。 外部类中的非静态方法仍然存在此问题。 字段的可见性并不重要。无论从哪种方式,它都可以从内部类中看到。 可以通过内部类中的(私有)getter访问该字段,但我出现问题的原因之一是,我希望避免这些。 它应该成为不可变的构建器模式的一

  • 问题内容: 好的,所以我对ajax和从外部加载内容还很陌生,希望对我的问题有任何见解。 我目前有一个隐藏的div,它是空的,单击链接后应该在其中加载ajax内容。 我目前有一个链接列表,所有链接都具有相同的类,并且我想在单击空白div时进行幻灯片切换,然后从链接要访问的页面中加载内容。 链接: 当前的jQuery: 刚接触Ajax并加载外部内容时,我想知道如何从位于标签中的链接页面加载内容。因此,

  • 我拼凑了一个示例项目来说明我的问题。 main.java: sample.fxml: 错误中显示的完整路径完全正确,并指向确实存在的文件。 我该如何排除故障呢?由于它在示例项目中运行良好,但在我较大的项目中却不行,所以问题显然出在我的其他项目代码中的某个地方。 但是为什么编译器会告诉我一个文件不存在,而它明明存在呢?