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