Skip to content

CSS 字体

选择合适的字体是网页设计中至关重要的一环,它直接影响到网站的风格和可读性。CSS 提供了一系列属性来控制字体。

font-family

font-family 属性用于指定元素的字体。由于你无法保证用户的电脑上安装了你指定的特定字体,因此 font-family 属性可以接受一个由多个字体名称组成的“字体栈” (font stack),用逗号隔开。

浏览器会从左到右依次检查列表中的字体,并使用第一个在用户系统上可用的字体。

css
p {
  font-family: "Times New Roman", Times, serif;
}

在这个例子中,浏览器会首先尝试使用 "Times New Roman"。如果找不到,它会尝试 Times。如果还找不到,它会使用系统默认的 serif (衬线) 字体。

最佳实践:

  1. 字体名包含空格时要用引号:如 "Times New Roman"
  2. 最后提供一个通用字体族:总是在字体栈的最后提供一个通用字体族(如 serif, sans-serif, monospace),作为后备选项。

通用字体族

  • serif: 带有“小脚”或装饰性笔画的字体,如 Times New Roman。常用于印刷体。
  • sans-serif: “无衬线”字体,线条简洁,如 Arial, Helvetica。是网页中最常用的字体类型。
  • monospace: 等宽字体,每个字符占据相同的宽度,如 Courier。常用于显示代码。
  • cursive: 草书字体,模仿手写风格。
  • fantasy: 装饰性字体,用于标题等。

font-style

font-style 属性主要用于指定字体的样式,通常是用来设置斜体。

  • normal: (默认) 正常显示的文本。
  • italic: 使用字体的斜体版本。
  • oblique: 如果字体没有斜体版本,浏览器会通过倾斜正常版本的文字来模拟斜体。
css
p.italic {
  font-style: italic;
}

font-weight

font-weight 属性用于设置字体的粗细(字重)。

  • normal: (默认) 正常粗细,等同于 400
  • bold: 粗体,等同于 700
  • 你也可以使用数字值:100, 200, ..., 900。但这需要字体本身支持这些不同的字重。
css
p.bold {
  font-weight: bold;
}

p.light {
  font-weight: 300;
}

font-size

font-size 属性用于设置字体的大小。

  • 像素 (px): font-size: 16px;。这是一个绝对单位,提供了精确的控制。
  • em: font-size: 1.2em;。这是一个相对单位,1em 等于当前元素的父元素的字体大小。1.2em 意味着是父元素字号的 1.2 倍。
  • rem (root em): font-size: 1.2rem;。这是 CSS3 中引入的单位,1rem 等于根元素 (<html>) 的字体大小。使用 rem 可以方便地实现整个网站的字体大小缩放,是现代响应式设计中的首选单位。
  • 百分比 (%): font-size: 120%;。类似于 em
css
html {
  font-size: 16px; /* 定义根字号 */
}

body {
  font-size: 1rem; /* 等于 16px */
}

h1 {
  font-size: 2rem; /* 等于 32px */
}

font (简写属性)

background 类似,font 也是一个简写属性,可以让你在一行内设置多个字体相关的属性。顺序如下:

font: font-style font-weight font-size/line-height font-family;

注意: font-sizefont-family 是必须的。

css
p {
  font: italic bold 16px/1.5 Arial, sans-serif;
}

@font-face (Web 字体)

如果你想使用用户电脑上没有安装的自定义字体,可以使用 CSS3 的 @font-face 规则。这允许你从服务器上加载字体文件。

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

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

像 Google Fonts 这样的服务,可以让你轻松地在网站上使用大量高质量的免费 Web 字体。

本站内容仅供学习和研究使用。