语法

@font-face {
  font-properties
}

@font-face 规则示例:

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      @font-face {
        font-family: 'myFont';
        src: url('webfont.eot');
        /* IE9 Compat Modes */
        src: url('webfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
        url('webfont.woff2') format('woff2'), /* Super Modern Browsers */
        url('webfont.woff') format('woff'), /* Pretty Modern Browsers */
        url('webfont.ttf') format('truetype'), /* Safari, Android, iOS */
        url('webfont.svg#svgFontName') format('svg');
        /* Legacy iOS */
      }
      div {
        font-family: myFont, sans-serif;
      }
    </style>
  </head>
  <body>
    <h2>@font-face example</h2>
    <div>
      @font-face CSS at-rule 指定用于显示文本的自定义字体; 可以从远程服务器或者用户计算机上本地安装的字体加载字体。 如果提供 local() 函数,指定要在用户计算机上查找的字体名称,并且用户代理找到匹配项,则使用该本地字体。 否则,下载并使用使用 url() 函数指定的字体资源。
    </div>
    <p>
      @font-face at-rule Jan 不仅可以在 CSS 的顶层使用,还可以在任何 CSS 条件组 at-rule 中使用。
    </p>
  </body>
</html>

CSS @font-face Rule 属性值说明

Font 描述符价值描述
font-family名称它定义了字体的名称,它是一个要求。
srcURL.它定义了将下载字体的URL,并且它是一个要求。
font-stretch正常浓缩超浓缩超级浓缩半浓缩 explably 超展开它定义了字体将如何延长。其默认值是正常的,它是可选的。
font-style正常的斜体斜它定义了字体如何样式。其默认值是正常的,它是可选的。
font-weight普通股份 900它定义了字体粗体。其默认值是正常的,它是可选的。
unicode-rangeunicode范围它定义了字体支持的Unicode字符的范围。其默认值为u + 0-10ffff,它是可选的。

OTF/TTF

WOFF 是为响应 OpenType 字体和 TrueType 字体而创建的,因为这些格式很容易(并且非法)被复制。
但是,OpenType 功能可能会引起很多设计者的兴趣(例如连字)

SVG/SVGZ

可缩放矢量图形(字体)是字体的矢量重新创建,使其文件大小更轻,非常适合移动使用。
它是 Safari for iPhone 4.1 及以下版本允许的唯一格式。
SVGZ 是 SVG 的压缩版本。

CSS @font-face 规则

CSS @font-face 是一个规则,它允许网页设计师定义在线字体以在他们的上显示文本。
因此,网页设计师将不再需要使用“网络安全字体”。

我们必须首先在新的@font-face 规则中为字体定义一个名称(如 myFirstFont),然后指向字体文件。

每个浏览器都有自己的格式。
我们使用 ttf、otf、eot、svg、svgz、woff、woff2 格式。

WOFF/WOFF2

Web Open Font Format,为在 Web 上使用而创建并由 Mozilla 与其他组织一起开发,WOFF 字体通常比其他格式加载更快,因为它们使用 OpenType (OTF) 和 TrueType (TTF) 字体使用的结构的压缩版本. WOFF2是新一代的WOFF,压缩性更好。

在使用自定义字体时,我们应该考虑以下几点:

  • 文件大小。建议使用较轻版本的选项。
  • 字符集限制。我们可以限制字体集以仅加载使用的字体。
  • 小屏幕的系统字体。解决方案之一是在使用@media 加载自定义字体时定位更大的屏幕。
初始值取决于浏览器。
应用于所有元素。它还适用于伪元素::first-letter 和 ::first-line。
继承可继承
可动画的无效
版本CSS3.
DOM 语法object.Style.fontFamily =“Verdana,Sans-Serif”;

EOT

微软(@font-face 的原始创新者)在 15 年前创建的 Embedded Open Type 格式是 IE8 及以下版本在使用 @font-face 时唯一能识别的格式。

浏览器支持

最深入的浏览器支持

这是支持最深的方法。
在任何样式之前,我们应该将 @font-face 规则添加到样式表中。

@font-face {
  font-family: 'MyWebFont';
  src: url('webfont.eot');
  /* IE9 Compat Modes */
  src: url('webfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
  url('webfont.woff2') format('woff2'), /* Super Modern Browsers */
  url('webfont.woff') format('woff'), /* Pretty Modern Browsers */
  url('webfont.ttf') format('truetype'), /* Safari, Android, iOS */
  url('webfont.svg#svgFontName') format('svg');
  /* Legacy iOS */
}

然后,它用于按以下方式设置元素的样式:

body {
  font-family: 'MyWebFont', Fallback, sans-serif;
}

浏览器支持的实际水平

由于 WOFF 和 WOFF2 是常用的,我们可以使用以下内容:

@font-face {
  font-family: 'MyWebFont';
  src: url('myfont.woff2') format('woff2'), url('myfont.woff') format('woff');
}

超级渐进式浏览器支持

如果我们正在研究 WOFF,可以预期 WOFF2 可以在某个时候使用:

@font-face {
  font-family: 'MyWebFont';
  src: url('myfont.woff2') format('woff2');
}

替代技术

在某些情况下,最好使用托管字体。
这是由 Google Fonts 提供的,作为使用其字体的一种方式。

在以下代码中,@import 用于从 Google Fonts 加载字体:

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

然后它可以用于样式元素:

body {
  font-family: 'Open Sans', sans-serif;
}

托管服务可能具有优势。
它可能会包含字体文件的所有变体,提供深度的跨浏览器兼容性,并且不需要我们自己托管文件。

@import url(//fonts.googleapis.com/css?family=Open+Sans);
body {
  background: #efefef;
  font-family: 'Open Sans', sans-serif;
  font-size: 16px;
  line-height: 24px;
  padding: 50px;
}

同样,样式表可以链接到 HTML 文档的 <head> 中的相同资产,而不是 CSS。

<link href='//fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css'>

然后,元素可以像其他方法一样设置样式:

body {
  font-family: 'Open Sans', sans-serif;
}

同样,@font-face 规则被导入,但它们被添加到 HTML <head>:

body {
  background: #efefef;
  font-family: 'Open Sans', sans-serif;
  font-size: 16px;
  line-height: 24px;
  padding: 50px;
}
h1 {
  font-size: 30px;
  line-height: 45px;
  font-family: 'Open Sans', sans-serif;
}

使用 Google 字体的 @font-face 规则示例:

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <link href="https://fonts.googleapis.com/css?family=Courier+Prime:400,700&display=swap" rel="stylesheet">
    <style> 
      h2{
      font-family: 'Courier Prime', monospace;
      font-weight:700;
      }
      div {
      font-family: 'Courier Prime', monospace;
      }
      p{
      font-family: 'Courier Prime', monospace;
      }
    </style>
  </head>
  <body>
    <h2>@font-face example</h2>
    <div>
      @font-face CSS at-rule 指定用于显示文本的自定义字体; 可以从远程服务器或者用户计算机上本地安装的字体加载字体。 如果提供 local() 函数,指定要在用户计算机上查找的字体名称,并且用户代理找到匹配项,则使用该本地字体。 否则,下载并使用使用 url() 函数指定的字体资源。
    </div>
    <p>
     @font-face at-rule Jan 不仅可以在 CSS 的顶层使用,还可以在任何 CSS 条件组 at-rule 中使用。
    </p>
  </body>
</html>
日期:2020-06-02 22:14:31 来源:oir作者:oir