小码哥的IT人生

CSS Web 字体 详解

css3基础 2022-05-23 12:07:34小码哥的IT人生shichen

CSS Web 字体

CSS @font-face 规则

Web 字体允许 Web 设计人员使用用户计算机上未安装的字体。

当您找到/购买了想要使用的字体后,只需将字体文件包含在您的 Web 服务器上,它将在需要时自动下载给用户。

您的“自有”字体在 CSS @font-face 规则中进行定义。

不同的字体格式

TrueType 字体 (TTF)

TrueType 是 1980 年代后期由 Apple 和 Microsoft 开发的字体标准。 TrueType 是 Mac OS 和 Microsoft Windows 操作系统最常用的字体格式。

OpenType 字体 (OTF)

OpenType 是可缩放计算机字体的格式。它基于 TrueType 构建,并且是 Microsoft 的注册商标。今天,OpenType 字体在主要计算机平台上得到普遍使用。

Web 开放字体格式 (WOFF)

WOFF 是用于网页的字体格式。它于 2009 年开发,现已成为 W3C 的推荐标准。 WOFF 本质上是具有压缩和其他元数据的 OpenType 或 TrueType。目标是支持在有带宽限制的网络上从服务器到客户端进行字体分发。

Web 开放字体格式 (WOFF 2.0)

TrueType/OpenType 字体比 WOFF 1.0 提供更好的压缩。

SVG 字体/形状

SVG 字体允许在显示文本时将 SVG 用作字形。 SVG 1.1 规范定义了一个字体模块,该模块允许在 SVG 文档中创建字体。您还可以将 CSS 应用于 SVG 文档,同时 @font-face 规则可以应用于 SVG 文档中的文本。

嵌入式 OpenType 字体 (EOT)

EOT 字体是 Microsoft 设计的 OpenType 字体的紧凑形式,用作网页上的嵌入式字体。

对字体格式的浏览器支持

表格中的数字注明了完全支持该字体格式的首个浏览器版本。

字体格式          
TTF/OTF 9.0* 4.0 3.5 3.1 10.0
WOFF 9.0 5.0 3.6 5.1 11.1
WOFF2 14.0 36.0 39.0 10.0 26.0
SVG 不支持 不支持 不支持 3.2 不支持
EOT 6.0 不支持 不支持 不支持 不支持

*IE:该字体格式仅在设置为 "installable" 时有效。

*Firefox:默认情况下不支持,但可以启用(需要将标志设置为 "true" 才能使用 WOFF2)。

使用您需要的字体

在 @font-face 规则中:首先定义字体的名称(例如 myFirstFont),然后指向该字体文件。

提示:字体 URL 始终使用小写字母。大写字母可能会在 IE 中产生意外结果。

如需将字体用于 HTML 元素,请通过 font-family 属性引用字体名称(myFirstFont):

示例代码:

@font-face {
  font-family: myFirstFont;
  src: url(sansation_light.woff);
}
div {
  font-family: myFirstFont;
}

 

完整实例【亲自试一试】:

<!DOCTYPE html>
<html>
<head>
<style>
@font-face {
   font-family: myFirstFont;
   src: url(sansation_light.woff);
}
* {
   font-family: myFirstFont;
}
</style>
</head>
<body>
<h1>@font-face 规则</h1>
<div>
通过 CSS,网站可以使用<b>预选的 "web-safe" 字体以外的其他字体</b>。
</div>
<p><b>注释:</b>Internet Explorer 8 以及更早的版本不支持 @font-face 规则。</p>
</body>
</html>

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

使用粗体文本

您必须添加另一条 @font-face 规则,其中包含粗体文本的描述符:

示例代码:

@font-face {
  font-family: myFirstFont;
  src: url(sansation_bold.woff);
  font-weight: bold;
}

 

完整实例【亲自试一试】:

<!DOCTYPE html>
<html>
<head>
<style>
@font-face {
   font-family: myFirstFont;
   src: url(sansation_light.woff);
}
@font-face {
   font-family: myFirstFont;
   src: url(sansation_bold.woff);
   font-weight: bold;
}
* {
   font-family: myFirstFont;
}
</style>
</head>
<body>
<h1>@font-face 规则</h1>
<div>
通过 CSS,网站可以使用<b>预选的 "web-safe" 字体以外的其他字体</b>。
</div>
<p><b>注释:</b>Internet Explorer 8 以及更早的版本不支持 @font-face 规则。</p>
</body>
</html>

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

文件 "sansation_bold.woff" 是另一个字体文件,其中包含 Sansation 字体的粗体字符。

每当带有 "myFirstFont" 字体族的一段文本应呈现粗体时,浏览器都会使用它。

这样,您就可以为同一字体设置许多 @font-face 规则。

CSS 字体描述

下表列出了能够在 @font-face 规则内定义的所有字体描述符(font descriptor):

描述符 描述
font-family name 必需。定义字体名称。
src URL 必需。定义字体文件的 URL。
font-stretch
  1. normal
  2. condensed
  3. ultra-condensed
  4. extra-condensed
  5. semi-condensed
  6. expanded
  7. semi-expanded
  8. extra-expanded
  9. ultra-expanded
可选。定义应如何拉伸字体。默认值是 "normal"。
font-style
  1. normal
  2. italic
  3. oblique
可选。定义字体的样式。默认值是 "normal"。
font-weight
  1. normal
  2. bold
  3. 100
  4. 200
  5. 300
  6. 400
  7. 500
  8. 600
  9. 700
  10. 800
  11. 900
可选。定义字体的粗细。默认值是 "normal"。
unicode-range unicode-range 可选。定义字体支持的 UNICODE 字符范围。默认值是 "U+0-10FFFF"。

版权所有 © 小码哥的IT人生
Copyright © phpcodeweb All Rights Reserved
ICP备案号:苏ICP备17019232号-2  

苏公网安备 32030202000762号

© 2021-2024