博客刚搭起来、文章数量还很少时,一些平时不明显的问题反而更容易暴露出来。这次主要处理了站点配置、空内容布局、页面宽度和背景样式,让博客在内容较少时也能保持稳定。
让首页真正读取站点配置
首页原先写死了旧网站的标题和副标题。即使修改了 src/config/site.yaml,浏览器标签和首页的隐藏标题仍可能显示旧内容。
修复后,首页统一读取:
name: 简AIdescription: 知行有简,岁月有AI。其中 name 作为站名,description 作为副标题。首页浏览器标签组合显示为:
简AI - 知行有简,岁月有AI。文章等内页继续使用原有的 titleTemplate,避免改变已经确定的标题规则。
空内容也要维持布局
当前博客文章较少,没有标签、双链和推荐文章时,相关组件原本会整段隐藏。这会让文章正文占据侧栏所在的网格列,看起来像是整体跑到了左侧。
这次将文章详情页的三个侧栏区块改为常驻:
- 目录
- 双链
- 推荐阅读
没有内容时直接显示“无”。首页的标签区块也采用相同规则。这样不论有多少文章,页面网格都保持一致,后续增加内容时也不需要重新适配布局。
让 footer 在短页面沉底
文章较少时,页面内容不足以撑满浏览器高度,footer 会停在页面中间,最大化窗口后留下大片空白。
解决方法是把页面外层改为纵向 flex 布局:
.site-shell { display: flex; flex-direction: column; min-height: 100vh;}
.main { flex: 1 0 auto;}这不是固定定位的 footer。短页面中它会自然沉到视口底部,长文章中仍跟随正文向下滚动,不会遮挡内容。
同时统一了三层宽度:顶部导航、主体和 footer 的外框均为 1080px;正文、顶部横线和 footer 横线扣除左右内边距后均为 1032px。移动端则统一使用 18px 左右边距。
用 CSS 补充两侧底纹
宽屏浏览器中,主体两侧会留下较多空白。为了增加一点简洁的技术感,又不引入图片资源,最终使用 CSS 渐变组合出点阵和网格:
background-image: radial-gradient(circle at 0 0, rgba(34, 124, 112, 0.14) 2px, transparent 2px), linear-gradient(rgba(34, 124, 112, 0.045) 1px, transparent 1px), linear-gradient(90deg, rgba(214, 140, 69, 0.04) 1px, transparent 1px);background-position: 5px 5px, 5px 5px, 5px 5px;background-size: 10px 10px, 20px 20px, 20px 20px;点的半径为 2px,点阵间距为 10px,网格间距为 20px。点和网格使用相同起点,因此每个网格交点都能与点对齐。
底纹只用于宽屏两侧。视口宽度不超过 1080px 时恢复纯色背景,避免移动端和 footer 区域显得杂乱。顶部导航的背景也只覆盖中间内容区,让两侧纹理保持连续。
消除页面切换时的横向偏移
从首页切换到“关于”页时,整体布局曾出现轻微左移。检查后发现,“关于”页内容较长,会出现纵向滚动条;首页较短,没有滚动条。两者的可用页面宽度相差 15px,居中容器因此移动了约 7.5px。
在根元素上固定预留滚动条槽位即可消除变化:
html { scrollbar-gutter: stable;}处理后,无论当前页面是否需要滚动条,导航、主体和 footer 都使用相同的居中基准。
小结
这次没有增加复杂功能,主要是在内容较少和宽屏显示这两个边界场景下补齐细节。配置只保留一个数据来源,空状态不再破坏网格,页面宽度和滚动条行为也统一下来。对个人博客来说,这类基础稳定性比堆叠更多视觉组件更重要。