::first-letter 和 ::first-line 可分别选中块级元素的首字母和首行文本,用于实现首字下沉、首行加粗等排版效果;两者可同时使用,样式叠加时前者优先级更高,常用于文章开头的视觉美化。

在CSS中,::first-letter 和 ::first-line 是两个伪元素,可以用来美化段落的排版。它们能分别选中一个块级元素中的首个字母和首行文本,常用于文章开头的装饰性样式。
1. ::first-letter 作用与用法
::first-letter 会选中段落的第一个字母(包括可能的引号或标点),常用于设置首字下沉、加大字号等效果。
例如:p::first-letter {
font-size: 2em;
color: red;
float: left;
margin-right: 4px;
}
这样会让段落第一个字母变大并左浮动,实现“首字下沉”效果。
2. ::first-line 作用与用法
::first-line 选中段落的第一行文本,具体范围取决于容器宽度、字体大小等布局因素。
立即学习“前端免费学习笔记(深入)”;
p::first-line {
font-weight: bold;
color: blue;
}
这会让段落第一行文字加粗并变为蓝色。
3. 同时使用 ::first-letter 与 ::first-line
这两个伪元素可以同时应用在同一个元素上,浏览器会分别处理各自的样式,互不冲突。
完整示例:p::first-letter {
font-size: 2.5em;
font-weight: bold;
color: #d40;
float: left;
line-height: 1;
margin-right: 6px;
}
p::first-line {
font-style: italic;
color: #555;
}
在这个例子中,首字母放大下沉,而第一行其余文字为斜体灰色。注意:首字母也属于第一行,所以它的样式是两个伪元素规则叠加的结果 —— 但 ::first-letter 的样式优先级更高,会覆盖 ::first-line 中对同一字符的设置。
4. 注意事项
- 只能应用于块级元素(如 p、div、h1 等)。
- 不能对替换元素(如 img)使用。
- 建议避免在伪元素上设置过多布局属性,以免影响可读性。
- 若使用 float 或 margin 调整首字母位置,注意不要破坏文本流。










