::first-letter伪元素可实现首字放大,但仅对块级元素生效,作用于段落首个字母或汉字;行内元素需设display: block/inline-block;注意空格、标签干扰及部分盒模型属性不支持。
直接用
伪元素
就能实现首字放大,但要注意它只对块级元素(如
、
、
等)生效,且仅作用于段落开头的**第一个字母或汉字**(支持中英文),不能用于行内元素(如
)除非显式设为
或
。
确保父元素是块级容器
如果目标文本在
或
这类行内标签里,
默认不触发。解决方法:
把文本包进
、
等块级标签里(推荐)
或给行内元素加样式:
或
基础写法示例
比如让一段文字首字变大加粗:
加上
可实现传统“首字下沉”效果;若只需放大不浮动,去掉
和
调整即可。
立即学习
“
前端免费学习笔记(深入)
”;
Comet AI 浏览器
下载 Comet AI 浏览器,体验由 Perplexity AI 驱动的革命性上网方式。内置 AI 助手可实时总结网页、跨标签页对比信息、自动执行任务。告别繁琐操作,让 AI 成为你的浏览副驾,大幅提升研究与工作效率。支持 Windows、macOS、Android 和 iOS。
下载
注意兼容性与限制
在所有现代
浏览器
中都支持,但有几点要留心:
只作用于**段落开头的第一个字符**,前面有空格、换行或标签(如
)会失效
不支持设置
、
等部分盒模型属性(不同浏览器表现略有差异)
中文标点如《、【、(等也算“字母”,但通常不会被选中——实际以首个可渲染的印刷字符为准
想对特定文本单独控制?加 class 更稳妥
避免影响全文,建议给需要首字放大的段落加专属 class:
对应 CSS:
基本上就这些,不复杂但容易忽略块级前提和空格干扰。
::first-letterpdivh1spandisplay: blockinline-blockspana::first-letterpdivdisplay: inline-block;display: block;p.dropcap::first-letter {
font-size: 2.5em;
font-weight: bold;
float: left;
line-height: 0.8;
margin-right: 0.2em;
}float: leftfloatline-height::first-lettermargin-toppadding-bottom这是一段需要首字放大的文字
.big-first::first-letter {
font-size: 3em;
color: #d32f2f;
}