CSS initial-letter 如何实现首字下沉:从排版控制到浏览器支持边界
首字下沉在文章正文排版中很常见,但用 float 手工拼出的方案在行高、字体度量和多行对齐上容易失稳。本文以一篇中文长文的开篇段为贯穿场景,说明 initial-letter 的尺寸与下沉值如何决定首字占位和基线位置,它与 float 方案在布局参与方式上的差异,以及在不支持该属性的浏览器里如何做渐进增强与降级。
共 4 篇文章
首字下沉在文章正文排版中很常见,但用 float 手工拼出的方案在行高、字体度量和多行对齐上容易失稳。本文以一篇中文长文的开篇段为贯穿场景,说明 initial-letter 的尺寸与下沉值如何决定首字占位和基线位置,它与 float 方案在布局参与方式上的差异,以及在不支持该属性的浏览器里如何做渐进增强与降级。
当首选字体不可用而回退到备用字体时,文本的视觉大小可能突变。本文以中文网页的多字体回退栈为例,解释 font-size-adjust 如何通过调整字号使备用字体的 x 高度与首选字体一致,并分析其计算机制、对行高与布局的影响以及浏览器支持边界。
本文以博客文章正文排版为例,分析 text-wrap: pretty 如何通过调整段落末尾几行的换行位置来避免孤行、提升排版质量,并解释其与 text-wrap: balance 的差异、对布局计算次数的影响,以及适用场景和性能权衡。
本文以标题排版场景为例,分析 text-wrap: balance 如何让浏览器平衡多行文本的宽度,解释其基于最大宽度迭代的布局计算机制,对比手动换行或 JS 测量方案,并说明 balance 的适用边界(短文本)、性能开销(布局次数增加)及与 pretty 的差异。