- CSS 教程
- CSS - 教程
- CSS - 简介
- CSS - 语法
- CSS - 选择器
- CSS - 包含
- CSS - 度量单位
- CSS - 颜色
- CSS - 背景
- CSS - 字体
- CSS - 文本
- CSS - 图像
- CSS - 链接
- CSS - 表格
- CSS - 边框
- CSS - border-block 属性
- CSS - 边框内联
- CSS - 边距
- CSS - 列表
- CSS - Padding 属性
- CSS - 光标
- CSS - 轮廓
- CSS - 维度
- CSS - 滚动条
- CSS - 内联块
- CSS - 下拉列表
- CSS - visibility 属性
- CSS - Overflow 属性
- CSS - 清除修复
- CSS - float(浮点)
- CSS - 箭头
- CSS - resize 属性
- CSS - quotes 属性
- CSS - order 属性
- CSS - Position 属性
- CSS - hypens 属性
- CSS - :hover(悬停)
- CSS - display(显示)
- CSS - focus 属性
- CSS - zoom(缩放)
- CSS - translate 属性
- CSS - Height 属性
- CSS - hyphenate-character 属性
- CSS - Width 属性
- CSS - opacity 属性
- CSS - z-index 属性
- CSS - bottom 属性
- CSS - 导航栏
- CSS - 覆盖
- CSS - 表单
- CSS - 对齐
- CSS - 图标
- CSS - 图片库
- CSS - 注释
- CSS - 加载器
- CSS - Atrribute 选择器属性
- CSS - 运算器
- CSS - root
- CSS - 盒子模型
- CSS - 计数器
- CSS - Clip (Obsolete) 属性
- CSS - writing-mode 属性
- CSS - Unicode-bidi 属性
- CSS - min-content 属性
- CSS - 全部
- CSS - inset 属性
- CSS - isolation 属性
- CSS - overscroll-behavior 属性
- CSS - justify-items 属性
- CSS - justify-self 属性
- CSS - tab-size 属性
- CSS - pointer-event 属性
- CSS - place-content 属性
- CSS - place-items 属性
- CSS - place-self 属性
- CSS - max-block-size 属性
- CSS - min-block-size 属性
- CSS - mix-blend-mode 属性
- CSS - max-inline-size 属性
- CSS - min-inline-size 属性
- CSS - offset 属性
- CSS - accent-color 属性
- CSS - user-select 属性
- CSS 高级
- CSS - grid 属性
- CSS - Grid 布局
- CSS - flexbox
- CSS - vertical-align 属性
- css - positioning
- css - layers
- css - pseudo_classes
- CSS - 伪元素
- CSS - @ 规则
- CSS 滤镜 - text-effect 属性
- CSS 分页媒体
- CSS 打印
- CSS - 布局
- CSS - 验证
- CSS - 图像精灵
- CSS - !important
- CSS - 数据类型
- CSS3 教程
- CSS - 圆角
- CSS - 边框图像
- CSS - 多种背景
- CSS - 渐变
- CSS - box-shadow 属性
- CSS - box-decoration-break 属性
- CSS - caret-color 属性
- CSS - text-shadow 属性
- CSS - 2D 转换
- CSS - 3D 变换
- CSS - transition 属性
- CSS - 动画
- CSS - 多列布局
- CSS - 盒子大小调整
- CSS - 工具提示
- CSS - buttons
- CSS - 分页
- CSS - 变量
- CSS - 媒体查询
- CSS - 值函数
- CSS - 数学函数
- CSS - Mask 属性
- CSS - shape-outside 属性
- CSS - 样式图像
- CSS - 特异性
- CSS - 自定义属性
- CSS 响应式
- CSS - 响应式网页设计 (RWD)
- CSS - 响应式设计视口
- CSS - 响应式网格视图
- CSS - 响应式媒体查询
- CSS - 响应式图像
- CSS - 响应式视频
- CSS - 响应式框架
- CSS 引用
- CSS - 所有属性列表
- CSS - 颜色引用
- CSS - 浏览器支持参考
- CSS - 网页字体
- CSS 工具
- CSS - PX 到 EM 的转换
CSS @font-face - src
at 规则 @font-face 的 CSS 描述符 src 指定包含字体数据的资源。@font-face 规则有效是强制性的描述符。
可能的值
CSS 描述符 src 可以具有以下值之一:
- <url>():指定所需字体的外部引用。
- 由 <url>() 组成,后跟可选的组件值 format() 和 tech(),用于指定格式和字体技术。
- 这些组件是一个逗号分隔的列表,称为字体格式和技术。
- 当用户代理不支持任何字体技术或格式时,将跳过字体资源的下载。
- 如果未提供字体技术或格式提示,则始终会下载字体资源。
- format():可选的字体格式提示,位于 <url>() 值之后。
- 当字体格式值不受支持或无效时,将跳过字体资源的下载,从而节省带宽。
- 如果未提供字体格式提示,则会下载字体资源,然后检测该格式。本文下面列出了格式的不同值。
- local(<font-face-name>):指定应在用户设备上可用的字体名称。名称可以用引号括起来,也可以不用引号括起来。
注意:有一组预安装的字体,这些字体对于特定设备的所有用户都是相同的,但用户安装的字体则不相同。为使用用户安装的字体的设备构建指纹;这反过来又有助于网站在网络上跟踪用户。因此,为了提供这种情况,用户代理在使用 local() 时可能会忽略这些用户安装的字体。
语法
以下是可以声明 src 描述符的不同方式:
<url> 值
src: url(https://fonts.google.com/specimen/Brygada+1918/Brygada1918-Italic.ttf); /* Absolute URL */
src: url(font/Brygada1918-Italic.ttf); /* Relative URL */
src: url("font/Brygada1918-Italic.ttf"); /* Quoted URL */
src: url(path/to/svgFont.svg#example); /* Fragment identifying font */
<font-face-name>值
src: local(Verdana); /* Unquoted name */
src: local(Arial Bold); /* Name containing space */
src: local("Verdana"); /* Quoted name */
src: local("Arial Bold"); /* Quoted name containing a space */
<tech(<font-tech>)>值
src: url(path/to/fontCOLRv1.otf) tech(color-COLRv1);
src: url(path/to/fontCOLR-svg.otf) tech(color-SVG);
<format(<font-format>)>值
src: url(font/Brygada1918-Italic.ttf) format("ttf");
src: url(font/SansationLight.woff) format("woff");
多种资源
src: url(font/Brygada1918-Italic.ttf) format("ttf"),
src: url(font/SansationLight.woff) format("woff");
具有字体格式和技术的多种资源
src: url(path/to/fontCOLR-svg.otf) format("opentype") tech(color-SVG);,
src: url(font/SansationLight.woff) format("woff");
描述
以下几点解释了描述符 src 的功能。
- 此描述符中的每个资源都是使用 <url>() 或 local() 指定的。
- 描述符 src 的值是优先级和逗号分隔的外部字体文件列表或本地安装的字体名称。
- 如果需要字体,用户代理可以迭代一组值。成功加载的第一个值将被使用或激活。
- 任何无效或不受支持的值,包括外部引用或本地字体,都将被忽略,并且用户代理将加载列表中的下一个字体。
- 当指定了多个描述符 src 时,将应用最后声明的可加载规则。
- 当最后一个 src 描述符可以加载外部资源并且未列出 local() 字体时,浏览器将下载外部字体文件。字体的本地版本将被忽略,即使在设备上可用也是如此。
可以在 URL 中引用包含 @font-face 的样式表。此外,对于 SVG 字体,URL 对应于包含 SVG 定义的文档中的元素。
当字体容器格式包含多个加载时,将指定片段标识符以指示要加载的字体。如果片段标识符方案不适用于字体格式,则使用简单的基于 1 的索引方案,例如,“samplefont-collection#1”用于第一种字体,“samplefont-collection#2”用于第二种字体,依此类推。
当字体文件包含多个字体时,将包含一个片段标识符,该标识符指示要使用的子字体,如下所示:
/* SampleFont is the PostScript name of a font in the font file */
src: url(collection.otc#SampleFont);
/* SampleFont is the element id of a font in the SVG Font file */
src: url(fonts.svg#SampleFont);
字体格式
下表说明了有效字体关键字及其相应字体格式的映射。为了检查浏览器是否支持字体格式,您可以使用@supports规则。
关健词 | 字体格式 | 常见扩展 |
---|---|---|
collection | OOpenType 集合 | .otc, .ttc |
embedded-opentype | 嵌入式 OpenType | .eot |
opentype | OpenType | .otf, .ttf |
svg | SVG 字体(已弃用) | .svg, .svgz |
truetype | TrueType | .ttf |
woff | WOFF 1.0 | .woff |
woff2 | WOFF 2.0 | .woff2 |
无论字体文件使用三次贝塞尔曲线(在 CFF/CFF2 表中)还是二次贝塞尔曲线(在字形表中),值 opentype 和 truetype 都是等效的。
下表显示了 format() 值的旧语法及其等效的新语法,该语法将字符串值括在引号中以实现向后兼容性:
旧语法 | 等效语法 |
---|---|
format("woff2-variations") | format(woff2) tech(variations) |
format("woff-variations") | format(woff) tech(variations) |
format("opentype-variations") | format(opentype) tech(variations) |
format("truetype-variations") | format(truetype) tech(variations) |
字体技术
下表说明了有效 tech() 值及其相应技术的映射。为了检查浏览器是否支持字体技术,您可以使用 @supports 规则。
关键词 | 描述 |
---|---|
color-cbdt | 颜色位图数据表 |
color-colrv0 | 通过 COLR 版本 0 表的多色字形 |
color-colrv1 | 通过 COLR 版本 1 表的多色字形 |
color-sbix | 标准位图图形表 |
color-svg | SVG 多色表格 |
features-aat | TrueType morx 和 kerx 表 |
features-graphite | 石墨特征,即 Silf, Glat , Gloc , Feat, and Sill tables |
features-opentype | OpenType、GSUB 和 GPOS 表 |
incremental | 增量字体加载 |
palettes | 字体调色板 通过 font-palette 在字体中选择众多调色板之一。 |
variations | TrueType 和 OpenType 字体中的字体变体,用于控制字体轴、粗细、字形等。 |
CSS src - 使用 url()
以下示例演示了如何使用 @font-face at 规则的描述符 src ,并使用 url() 的资源。
<html>
<head>
<style>
@font-face {
font-family: "f1";
src: url("font/Brygada1918-Italic.ttf");
font-style: italic;
}
h1 {
font-family: "f1", serif;
}
</style>
</head>
<body>
<h1>
Testing font-style.
</h1>
<h2>
Testing font-style.
</h2>
</body>
</html>
CSS src - 使用 local()
以下示例演示了如何使用 @font-face 规则的 src 描述符,并使用 local() 的资源。
<html>
<head>
<style>
@font-face {
font-family: "f1";
src: local(Arial Bold);
}
h1 {
font-family: "f1", serif;
}
</style>
</head>
<body>
<h1>
Testing font-style.
</h1>
<h2>
Testing font-style.
</h2>
</body>
</html>
CSS src - 使用 format()
以下示例演示了如何使用 @font-face 规则的 src 描述符,并使用 format() 的资源。
<html>
<head>
<style>
@font-face {
font-family: "f1";
src: url("font/Brygada1918-Italic.ttf") format(truetype);
font-style: italic;
}
h1 {
font-family: "f1", serif;
}
</style>
</head>
<body>
<h1>
Testing font-style.
</h1>
<h2>
Testing font-style.
</h2>
</body>
</html>
CSS src - 使用 tech()
以下示例演示了如何使用 @font-face 规则的 src 描述符,并使用 tech() 的资源。
<html>
<head>
<style>
@font-face {
font-family: "f1";
src: url("trickster-COLRv1.otf") format(opentype) tech(color-COLRv1);
}
h1 {
font-family: "f1";
}
</style>
</head>
<body>
<h1>Font Technology</h1>
</body>
</html>