@font-face
语法
@font-face {
font-family: "Trickster";
src:
local("Trickster"),
url("trickster-COLRv1.otf") format("opentype") tech(color-COLRv1),
url("trickster-outline.otf") format("opentype"),
url("trickster-outline.woff") format("woff");
}
描述符
ascent-override
-
定义字体的升高度量。
descent-override
-
定义字体的下降度量。
font-display
-
根据字体是否以及何时下载并准备好使用来确定字体面的显示方式。
font-family
-
指定一个名称,该名称将用作字体属性的字体面值。
font-stretch
-
一个`font-stretch`值。接受两个值以指定字体面支持的范围,例如`font-stretch: 50% 200%;`。
font-style
-
一个`font-style`值。接受两个值以指定字体面支持的范围,例如`font-style: oblique 20deg 50deg;`。
font-weight
-
一个`font-weight`值。接受两个值以指定字体面支持的范围,例如`font-weight: 100 400;`。
注意:font-variant 描述符已于 2018 年从规范中删除。`font-variant`值属性受支持,但没有等效的描述符。
font-feature-settings
-
允许控制 OpenType 字体中的高级排版功能。
font-variation-settings
-
通过指定要变化的功能的四个字母轴名称及其变化值,允许对 OpenType 或 TrueType 字体的变化进行低级控制。
line-gap-override
-
定义字体的行间距度量。
size-adjust
-
定义与该字体关联的字形轮廓和度量的乘数。这使得在相同字体大小下渲染各种字体时,更容易协调其设计。
src
-
指定对字体资源的引用,包括关于字体格式和技术的提示。对于 `@font-face` 规则有效,这是必需的。
unicode-range
-
要从字体中使用的 Unicode 代码点的范围。
描述
通常将 `url()` 和 `local()` 结合使用,以便在可用时使用用户安装的字体副本,如果在用户设备上找不到,则回退到下载字体副本。
如果提供了 `local()` 函数,则指定要在用户设备上查找的字体名称,如果用户代理找到匹配项,则使用该本地字体。否则,将下载并使用使用 `url()` 函数指定的字体资源。
浏览器尝试按其列表声明顺序加载资源,因此通常应在 `url()` 之前编写 `local()`。这两个函数都是可选的,因此包含一个或多个 `local()` 而不包含 `url()` 的规则块是可能的。如果需要具有 `format()` 或 `tech()` 值的更具体的字体,则应将其列在没有这些值的版本之前,因为否则将首先尝试并使用不太具体的变体。
通过允许作者提供自己的字体,@font-face
使设计内容不受限于所谓的“网页安全”字体(即,如此常见以至于被认为普遍可用的字体)成为可能。指定要查找和使用的本地安装字体的名称的能力,使得能够在基础之上自定义字体,同时无需依赖互联网连接即可实现。
注意:在较旧的浏览器上加载字体的回退策略在src
描述符页面中进行了描述。
@font-face
at-rule 不仅可以在 CSS 的顶层使用,还可以用于任何CSS 条件组 at-rule内部。
字体 MIME 类型
格式 | MIME 类型 |
---|---|
TrueType | font/ttf |
OpenType | font/otf |
Web 开放字体格式 | font/woff |
Web 开放字体格式 2 | font/woff2 |
备注
- Web 字体受相同的域名限制(字体文件必须与使用它们的页面位于同一域名下),除非使用HTTP 访问控制来放宽此限制。
@font-face
不能在 CSS 选择器内声明。例如,以下操作无效css.className { @font-face { font-family: "MyHelvetica"; src: local("Helvetica Neue Bold"), local("HelveticaNeue-Bold"), url("MgOpenModernaBold.ttf"); font-weight: bold; } }
正式语法
@font-face =
@font-face { <declaration-list> }
示例
指定可下载字体
此示例指定要使用的可下载字体,并将其应用于文档的整个主体
<!doctype html>
<html lang="en-US">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>Web Font Sample</title>
<style media="screen, print">
@font-face {
font-family: "Bitstream Vera Serif Bold";
src: url("https://mdn.github.io/css-examples/web-fonts/VeraSeBd.ttf");
}
body {
font-family: "Bitstream Vera Serif Bold", serif;
}
</style>
</head>
<body>
This is Bitstream Vera Serif Bold.
</body>
</html>
此示例代码的输出如下所示
指定本地字体替代方案
在此示例中,使用用户本地安装的“Helvetica Neue Bold”;如果用户未安装该字体(会尝试使用完整字体名称和 Postscript 名称),则使用名为“MgOpenModernaBold.ttf”的可下载字体。
@font-face {
font-family: "MyHelvetica";
src: local("Helvetica Neue Bold"), local("HelveticaNeue-Bold"),
url("MgOpenModernaBold.ttf");
font-weight: bold;
}
规范
规范 |
---|
CSS 字体模块级别 4 # font-face-rule |
浏览器兼容性
BCD 表仅在浏览器中加载