文章卡片高度不一样时,最直接的做法是上 Masonry 库。但对这个博客来说,引入一段布局脚本有点重:页面只是展示文章,不需要拖拽、不需要无限重排,也不需要复杂动画。
所以归档页用的是 CSS Columns:
.waterfall {
columns: 3;
column-gap: 22px;
}
.waterfall > * {
break-inside: avoid;
margin-bottom: 22px;
}
这个方案的优点很明确:
- 不需要等待图片加载后再计算布局;
- 没有额外 JS 包;
- 响应式只要改列数;
- 首屏更轻,布局更稳定。
它也有缺点。CSS Columns 的视觉顺序是先填第一列,再填第二列,不是从左到右逐行排列。如果页面内容是时间线、排行榜或强顺序列表,就不适合这么做。
薄荷手记的归档页更像文章墙,读者通常是扫描标题、分类和摘要,不会严格依赖横向顺序,所以这个取舍可以接受。
我比较在意的是性能边界。web.dev 的 Core Web Vitals 文档把 LCP、INP、CLS 作为体验指标,其中 CLS 和布局稳定性直接相关。能用 CSS 解决的布局,就尽量不要让 JS 在渲染后再搬动元素。参考:Web Vitals。
最后的经验是:不要因为某个效果名字听起来高级,就断定它需要复杂实现。个人站点很多时候要的是“够用且稳定”,不是“看起来像工程大项目”。

LETTERS / 评论
讨论区
还没有回应。登录后可以留下第一条评论。
登录后评论 →