广告

前端必学:如何用 CSS font-size 实现文字层级区分与排版技巧

文字层级设计的原理与目标

文本层级的定义

在前端开发中,文字层级是通过不同的 font-size 和配套属性来表达信息的重要性顺序,帮助读者快速定位内容。通过建立清晰的视觉层级,可以让标题、子标题与正文之间的关系一目了然。

一个稳定的层级体系应确保一级标题显著、二级标题次之、正文段落自然平滑,信息流动不被干扰,从而提升整页的可读性与用户体验。

视觉层级与可读性

除了字号,行高字重字距等排版要素也会参与排版层级,共同提升可读性与可访问性。

前端必学:如何用 CSS font-size 实现文字层级区分与排版技巧

通过统一的字体尺度系,页面呈现出稳定的层级结构,读者可以在不费力的情况下抓取关键信息,降低认知成本。

:root {--fs-xs: clamp(0.75rem, 0.9vw, 0.875rem);--fs-sm: clamp(0.875rem, 1.2vw, 1rem);--fs-base: clamp(1rem, 2vw, 1.125rem);--fs-lg: clamp(1.25rem, 4vw, 1.75rem);--fs-xl: clamp(1.75rem, 6vw, 2.5rem);
}
h2 { font-size: var(--fs-xl); font-weight: 700; }
h3 { font-size: var(--fs-lg); font-weight: 600; }
p  { font-size: var(--fs-base); line-height: 1.6; margin: 0.75rem 0; }

实现可控的字体层级:单位与尺度

单位选择:px、rem、em 的权衡

在构建字体尺度时,remem提供相对单位,便于跨组件保持一致性,尤其在多组件样式复用的场景里。

相比于px的绝对性,rem/em在用户缩放和无障碍模式下能自然保持比例,从而提升页面的无障碍性和可维护性。

构建可预测的文字尺寸尺度

采用统一的尺度系,把不同级别的字号映射到一个可控的变量集合上,确保整个页面的字级别一致性,便于团队协作和设计系统的落地。

通过将字号按层级分组,可以实现从标题到正文的连续视觉走向,降低设计与实现之间的差异。

:root {--scale-xs: 0.875rem;      /* 最小字号 */--scale-sm: 1rem;          /* 小字号/正文基准 */--scale-base: 1.125rem;     /* 正文字号基准 */--scale-lg: 1.5rem;         /* 二级标题字号 */--scale-xl: 1.75rem;        /* 一级标题字号(若需要) */
}
h2 { font-size: var(--scale-xl); font-weight: 700; }
h3 { font-size: var(--scale-lg); font-weight: 600; }
p  { font-size: var(--scale-base); line-height: 1.6; }

响应式排版与字体层级的技巧

流式字体与 clamp 的应用

通过clamp()实现流式字体,使字号在不同的屏幕尺寸下保持合适的视觉大小,既不过大浪费空间,也不至于太小影响阅读。

利用视口宽度来驱动字号,可以让排版节奏在设备间自然过渡,提升在移动端与桌面端的一致性。

:root {--ts-base: clamp(0.95rem, 1vw + 0.5rem, 1.15rem);--ts-lg: clamp(1.25rem, 2vw + 0.75rem, 1.75rem);--ts-xl: clamp(1.75rem, 4vw, 2.5rem);
}
h2 { font-size: var(--ts-xl); }
h3 { font-size: var(--ts-lg); }
p  { font-size: var(--ts-base); line-height: 1.6; }

基于视口的排版节奏与断点设计

在设计时可以设定断点节奏,使段落之间的垂直间距与字号形成稳定的排版结构,提升可读性的同时保持美观。

为了便于维护,建议采用CSS 变量与组件化的方法管理font-size的层级,让全站在不同页面上保持一致的排版风格。

:root {--rhythm: 1.75rem; /* 垂直节奏 */--max-width: 60ch;
}
.container { max-width: var(--max-width); margin: 0 auto; padding: 0 1rem; }
article { font-size: var(--fs-base); line-height: 1.6; }
@media (min-width: 800px) {:root { --fs-base: 1.125rem; --fs-lg: 1.75rem; }
}

广告