CSS: CSS 文本与字体

最后更新:2026-10-13

网页中最主要的内容就是文本。CSS 提供了丰富的属性来控制文本的字体、大小、颜色、间距和对齐方式。

✅ 字体栈顺序: font-family 应该从最具体的字体写到最通用的类别,例如 font-family: "Microsoft YaHei", "PingFang SC", sans-serif;。浏览器会从前到后尝试加载,直到找到可用的字体。CSS 提供了丰富的属性来控制文本的字体、大小、颜色、间距和对齐方式。

本节涉及属性: font-family font-size font-weight font-style line-height font color text-align left right text-decoration text-indent text-transform text-shadow letter-spacing word-spacing white-space text-overflow overflow width max-width

1. 字体属性

(1) 字体属性速查表

属性 常用值 作用
font-family "Microsoft YaHei", Arial, sans-serif 设置字体(可写多个备选)
font-size 16px, 1.2em, 1rem, 100% 字体大小
font-weight normal(400), bold(700), 100~900 字体粗细
font-style normal, italic, oblique 字体样式(斜体/正常)
line-height 1.5(无单位), 24px, 150% 行高(推荐正文1.5~1.8)
font italic bold 16px/1.8 sans-serif 简写属性,可同时设置多个

(2) 字体属性详解

(3) font-family(字体)

设置文本的字体。可以指定多个字体作为备选:

▶ 示例

▶ 试一试

浏览器会从左到右依次尝试使用字体,如果第一个字体不存在,则尝试下一个,以此类推。

(4) font-size(字体大小)

▶ 示例

▶ 试一试

常用单位:px(像素)、em(相对自身字体)、rem(相对根元素字体)、%(百分比)

(5) font-weight(字体粗细)

▶ 示例

▶ 试一试

(6) font-style(字体样式)

▶ 示例

▶ 试一试

(7) line-height(行高)

控制行与行之间的间距,对阅读体验影响很大:

▶ 示例

▶ 试一试

一般正文的 line-height 建议在 1.5 到 1.8 之间,阅读最舒适。

(8) font 简写属性

font 可以同时设置多个字体属性:

▶ 示例

▶ 试一试

顺序:font-style font-weight font-size/line-height font-family

注意:font-size 和 font-family 是必需的,缺少它们整个声明会无效。

(9) @font-face 自定义字体

可以使用 @font-face 加载网页中的自定义字体(非系统自带):

▶ 示例

▶ 试一试

字体文件路径说明:

注意字体版权:使用自定义字体时请确保拥有合法授权,优先选择开源字体。


2. 文本外观属性

(1) 文本属性速查表

属性 常用值 作用
color #333, red, rgb(255,0,0), rgba(0,0,0,0.5) 文本颜色
text-align left, center, right, justify 文本水平对齐方式
text-decoration none, underline, overline, line-through 文本装饰线
text-indent 2em, 32px 首行缩进
text-transform none, uppercase, lowercase, capitalize 文本大小写转换
text-shadow 2px 2px 4px rgba(0,0,0,0.5) 文本阴影(偏移+模糊+颜色)
letter-spacing 2px, -1px, 0.1em 字符间距
word-spacing 4px, 0.5em 单词间距
white-space normal, nowrap, pre, pre-wrap 空白字符和换行处理
text-overflow clip, ellipsis 文本溢出显示方式(需配合 overflow: hidden)

(2) color(文本颜色)

设置文本的颜色:

▶ 示例

▶ 试一试

(3) text-align(文本对齐)

▶ 示例

▶ 试一试

(4) text-decoration(文本装饰)

▶ 示例

▶ 试一试

(5) text-indent(文本缩进)

段落首行缩进常用:

▶ 示例

▶ 试一试

(6) letter-spacing(字符间距)

▶ 示例

▶ 试一试

(7) text-shadow(文本阴影)

⚠️ 可读性提醒: 文字阴影(text-shadow)虽然好看,但过度使用会降低可读性。深色背景配深色阴影完全看不清——确保文字和背景有足够对比度才是首要任务。

▶ 示例

▶ 试一试

(8) white-space(空白处理)

▶ 示例

▶ 试一试

(9) text-overflow(文本溢出)

配合 overflow 和 white-space 使用,处理文本溢出容器的场景:

▶ 示例

▶ 试一试

3. 综合示例

▶ 示例

▶ 试一试

本节涉及属性: font-family font-size font-weight font-style line-height font color text-align left right text-decoration text-indent text-transform text-shadow letter-spacing word-spacing white-space text-overflow overflow width max-width

❓ 常见问题

Q 中文字体怎么设置字体栈?
A 推荐顺序:font-family: "PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif;。Mac 用苹方(PingFang SC),Windows 用微软雅黑,然后回退到 Noto Sans 或系统无衬线字体。
Q 加载 Google Fonts 会影响速度吗?
A 会。Google Fonts 需要额外发起网络请求。建议只加载需要的字重(不要一次性加载 300/400/500/700 全部),并且加上 display=swap 参数让浏览器先用后备字体渲染,等自定义字体加载完成后再替换。
Q text-overflow: ellipsis 为什么有时候不生效?
A ellipsis 需要三个条件同时满足:white-space: nowrap(禁止换行)、overflow: hidden(溢出隐藏)、width 或 max-width(有限宽)。三个缺一个都不行。

📖 小节

📝 作业

  1. 创建一个文章阅读页面,包含标题、副标题、正文段落。使用不同的字体、字号和颜色区分层级。
  2. 在页面中演示 text-decoration 的至少 4 种效果(下划线、上划线、删除线、波浪线)。
  3. 实现"单行文本溢出显示省略号"的效果——在固定宽度的容器中显示一段长文本,超出部分用 ... 表示。
  4. 使用 text-shadow 给标题添加一个发光效果。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏