代码

CSS 里的呼吸感:间距系统的三个原则

间距不是随手写的 20px。它应该像音阶,有秩序、可预期,还要留出停顿。

2 分钟 452 43
CSS 里的呼吸感:间距系统的三个原则

我做界面有个习惯:先写间距,再写颜色。因为颜色决定第一眼,间距决定能不能读下去。

一、用比例,不用直觉

所有间距都从一个基数长出来,比如 8px。这样你不会写出 13px、27px、35px 这种谁也解释不清的数字。

:root {
  --s1: 8px;
  --s2: 16px;
  --s3: 24px;
  --s4: 40px;
  --s5: 64px;
}

二、相关的东西挨近,不相关的东西拉开

标题和它的正文是一家人,间距要小;上一段和下一段是邻居,间距中等;换章节了,间距要大。层级不是靠字号喊出来的,是靠距离暗示出来的。

如果所有间距都差不多,读者就得靠读内容来判断结构 —— 这很累。

三、给流动的内容留活口

用 clamp() 让间距跟着视口走,小屏不要把内容挤成一堵墙,大屏也不要让行宽拉到一百多个字符:

.entry {
  --space: 1.15em;
  font-size: clamp(16px, 1.05vw + 12px, 18px);
  line-height: 1.9;
}
.entry > * + * {
  margin-top: var(--space);
}

最后一条经验:写完样式之后,把浏览器缩到 360px 宽,再用最大字号读一遍。如果还舒服,间距大概就成了。

一张对照图

间距对照
同一段文字,行距 1.5 与 1.9 的差别比字号更明显。

间距对照表

位置 推荐值 说明
标题与正文 12–16px 同一组内容要贴紧
段落之间 1em 跟随字号自动变化
章节之间 2em 以上 暗示「换话题了」

把上面的写法贴进任意主题,正文的呼吸感就出来了。剩下的只是微调。

作者

uuxian

写点设计,也写点代码。喜欢把复杂的东西收拾干净,然后把过程记下来。

已发布 12 篇 · 查看全部

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注