p::first-letter设置首字母放大下沉且红色,p::first-line设置首行加粗蓝色,两者可同时生效;首字母浮动后不影响首行样式应用,但样式优先级由CSS规则决定,块级元素才支持。

在CSS中,::first-letter 和 ::first-line 是两个常用的伪元素,分别用于设置段落首字母和首行的样式。当它们同时应用于同一个段落时,可以实现美观的排版效果,比如首字母下沉搭配首行加粗或变色。
基本语法与作用范围
::first-letter 选择块级元素的第一个字母(包括紧跟其后的标点符号),常用于首字放大、下沉或变色。
::first-line 则选中段落的第一行文本,适用于设置首行字体、颜色或粗细。
两者可以同时应用到同一个元素上,浏览器会分别处理各自的样式规则,互不冲突。
组合使用示例
p::first-letter {
font-size: 2.5em;
float: left;
line-height: 0.8;
margin-right: 0.1em;
color: red;
}
p::first-line {
font-weight: bold;
color: blue;
}
上面的代码会让段落的第一个字母变大并左浮动(实现“首字下沉”效果),同时第一行文字加粗并显示为蓝色。注意:如果首字母被浮动,它可能不再属于文本流中的“第一行”,因此 ::first-line 的样式不会包含被 float 的首字母。
注意事项与优先级
- 样式优先级遵循CSS层叠规则,后定义的样式可覆盖前面的冲突属性。
- 若 ::first-letter 和 ::first-line 设置了相同的属性(如 color),则 ::first-letter 会优先作用于首字母,其余首行文字才受 ::first-line 控制。
- 确保目标元素是块级容器(如 p、div),否则伪元素可能不生效。
- 避免对 inline 元素使用这两个伪元素。










