如何在CSS文件中导入Google Web Font?

Dav*_*vid 238 css fonts css3 google-webfonts

我正在使用CMS,我只能访问CSS文件.所以,我不能在文档的HEAD中包含任何内容.我想知道是否有办法从CSS文件中导入Web字体?

Mod*_*ner 351

使用导入方法:

@import url('https://fonts.googleapis.com/css?family=Open+Sans&display=swap');
Run Code Online (Sandbox Code Playgroud)

显然,"Open Sans"是导入的字体.但你可以用你的替换它.如果它是一个单词字体,只要在@import它是两个单词之后包括字体名称,就像我一样,并Open+Sans在每个单词之间添加一个符号.

注意:+ CSS文件的第一行.(感谢@Ronny指出这一点).

在Google Webfont Library中,当您决定要使用哪种字体时,它会为您提供一个包含三个选项卡的框.每个选项卡都是注入方法,HTML,CSS或JavaScript.该@import选项卡应该为您提供css文件所需的代码.见图:

  • 你应该避免使用@import,因为它会推迟加载包含的资源,直到获取文件为止.请参阅此处的详细答案:http://stackoverflow.com/a/12380004/925560 (24认同)
  • 将@import线移到顶端解决了我的生活!谢谢! (3认同)
  • 这是一个过时的答案。`@import` 按顺序加载,最好避免:https://varvy.com/pagespeed/avoid-css-import.html 如今加载 Google 字体的首选(和默认)方式是使用 `<link>`。 (3认同)
  • 谷歌为什么这么说?Google Insides 声称不执行 @import。https://developers.google.com/speed/pagespeed/insights/? (2认同)
  • 当您开始使用 SEO 并开始使用 Google PageSpeed 见解优化您的页面速度时,您会后悔的。使用 `<link>` 并优化它的交付。 (2认同)

Bur*_*urk 59

<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Open+Sans:300,400,600,700&amp;lang=en" />
Run Code Online (Sandbox Code Playgroud)

最好不要使用@import.只需在布局的头部使用link元素,如上所示.

  • +1使用'link',因为它不会阻止其他外部文件的并行加载.'import'将阻止其他外部文件的并行加载. (24认同)
  • 你能否扩展为什么"最好不要使用"?我搜索了这个问题,因为我想知道哪种方法最好. (17认同)
  • 他特意说他不能在标题中使用<link>标签. (5认同)
  • 我有@import的Internet Explorer问题.有时它只是不读它. (2认同)
  • 通过使用@import,您可以使字体部分成为 CSS 样式的一部分,而不是 HTML 标记,这在语义上感觉更正确,并且您可以通过 CSS 替换站点上的字体。但正如查克评论的那样,您似乎为此受到了轻微的速度打击。也许计时加载时间,然后根据具体情况决定。请注意,对于 SVG [@import 是唯一有效的方法](/sf/answers/2537801171/) AFAIK。 (2认同)

小智 32

下载字体ttf /其他格式文件,然后只需添加此CSS代码示例:

@font-face { font-family: roboto-regular; 
			 src: url('../font/Roboto-Regular.ttf'); } 
h2{
	font-family: roboto-regular;
}
Run Code Online (Sandbox Code Playgroud)

  • 我喜欢这个答案,因为与所有导入和链接答案不同,这不会让 Google 跟踪您的用户 IP 地址。在欧洲这将违反 GDPR (8认同)

Shu*_*mar 31

在CSS文件中添加以下代码以导入Google Web字体.

@import url(https://fonts.googleapis.com/css?family=Open+Sans);
Run Code Online (Sandbox Code Playgroud)

用您的字体名称替换Open + Sans参数值.

您的CSS文件应如下所示:

@import url(https://fonts.googleapis.com/css?family=Open+Sans);

body{
   font-family: 'Open Sans',serif;
}
Run Code Online (Sandbox Code Playgroud)


小智 12

  1. 只需访问https://fonts.google.com/
  2. 单击+添加字体
  3. 转到所选字体>嵌入> @IMPORT>复制网址并粘贴到正文标记上方的.css文件中.
  4. 完成.


jmz*_*z7v 7

使用标签@import

@import url('http://fonts.googleapis.com/css?family=Kavoon');
Run Code Online (Sandbox Code Playgroud)


Mar*_*Zen 6

除了上述答案外,还请考虑访问此网站; https://google-webfonts-helper.herokuapp.com/fonts

优点:

  • 允许您自托管这些Google字体,以缩短响应时间

  • 选择您的字体

  • 选择你的角色集
  • 选择您的字体样式/粗细
  • 选择您的目标浏览器
  • 然后您会获得CSS片段(添加到CSS样式表中)以及要包含在项目中的字体文件的zip文件

例如your_theme.css

 @font-face { font-family: 'Open Sans'; font-style: normal;  font-weight: 400;
             src: local('Open Sans Regular'), local('OpenSans-Regular'),
             url('css_fonts/open-sans-v15-latin-regular.woff2') format('woff2'), 
             url('css_fonts/open-sans-v15-latin-regular.woff') format('woff'); 
 }

 body { font-family: 'Open Sans',sans-serif;}
Run Code Online (Sandbox Code Playgroud)

  • 我不建议使用“本地”部分,因为人们很少安装所需的字体,即使如此,大多数情况下也有来自其他地方的不同版本。开发和调试也更困难,特别是如果您安装了字体,并且可能会错过由于某些服务器故障或其他错误而导致字体无法为用户加载的情况。 (2认同)