排版 / 3 分钟阅读
给字号一个范围,也给阅读留出空间
从正文、比例、行距和屏宽一起出发,建立可以解释、可以复用的排印起点。
响应式排版可以从三个问题开始:小屏上最小能多大,大屏上最大需要多大,中间如何变化?CSS 的 clamp() 用最小值、首选值和最大值表达这一范围。它让字号能随环境变化,又不必无限放大或缩小;但一个计算公式无法替你判断读起来是否舒服。MDN clamp()
先确定一段正文
不要从最大的标题开始。先放入一段真正会出现在网站上的文字,包含中文、英文、数字和一个链接。把正文基准设在十八像素附近作为实验起点,再比较不同设置,而不是把这个数当成所有设备都适用的标准。正文确定之后,才比较小标题、大标题和辅助说明之间的层级。
字号比例可以让层级有规律地增长,但规律不等于必须全部照搬。例如,把比例从一点二调整到一点二五,连续几级之后,最大标题会明显不同。看一眼文章列表、正文页和手机页,选择能同时服务这些场景的范围;必要时让某一级单独调整,胜过为追求漂亮数字牺牲实际内容。
行距和行长要一起看
相同字号配上不同阅读栏宽度,体验会很不一样。过长的一行让回到下一行变得费力,过短的一行则可能把英文长词和标题不断挤开。中文和英文也有不同的视觉密度,所以一张只放几个大字的预览无法代表整篇文章。
正文行距可以先使用无单位数值,例如 line-height: 1.7,再依据字形调整。无单位行距按元素自身字号计算,可避免某些固定行高继承造成的问题。MDN line-height 试验时一次只改一项:先固定栏宽比较行距,再固定行距比较栏宽,记录你实际看到的变化。
流式字号也要经得起放大
使用相对单位参与字号计算,是为了给用户的设置留出空间;但仍然要实际检查文字放大后的结果。把浏览器文字放大到百分之二百,看看导航、标题、表单标签有没有被裁掉。WCAG 的文字缩放要求关注内容和功能能否继续使用,不是只检查有没有写 rem。W3C 文字缩放
在排印工坊中,用同一段样稿制作两组方案:一组适合长文,一组适合窄屏笔记。各保留一张窄屏预览,并导出 CSS。给文件补一句用途,例如“中文长文起点,需复核英文长标题”,让未来的自己知道它为何存在。
导出只是交接的开始。应用到真实网页后,还要检查字体是否按预期加载、标题是否换行、按钮是否受字号影响。把这些结果记在方案旁边,排印参数就从一串看似专业的数字,变成了能够解释和持续改进的设计选择。