单页网站就是把公司介绍、服务、案例、联系方式这些内容全塞进一个 HTML 文件里,用户点导航不是跳新页面,而是平滑滚到对应区块。它适合个人作品集、产品落地页、活动页、小团队官网,不太适合内容量大的博客或电商。原因很简单:内容一多,单页会变得又长又重,用户找信息也累。
我做过几个单页站,最直观的感受是快。一个结构干净的单页站,HTML、CSS、JS 压缩后通常不到 100KB,配一张压缩过的头图,首次加载能控制在 1 秒左右。StatCounter 的数据显示,全球移动端流量占比已经超过六成,国内移动端比例更高,所以做单页站别只盯着电脑屏幕,手机上的体验才是大头。
准备阶段不用复杂。先确定页面要讲哪几件事。常见顺序是:首屏放一句清楚的价值主张和按钮,接着是服务或功能,然后是案例或数据,再放客户评价,最后是联系方式。导航锚点一般五到七个,多了手机菜单会挤。文案别写太长,单页站的节奏靠滚动,用户没耐心读大段文字。
动手写代码时,先搭 HTML 骨架。一个 header 里放 logo 和导航,main 里按区块切 section,每个 section 给一个 id,比如 home、services、work、contact。footer 放版权和社交链接。导航链接直接写 href="#services",点一下就能跳过去。这里注意,锚点跳转默认是瞬间位移,体验生硬,可以用 CSS 的 scroll-behavior: smooth 让滚动顺滑,代码就一行。
CSS 建议移动优先。先写手机上的样式,再用媒体查询往大屏加。布局用 flex 和 grid,别再用 float 硬撑。颜色和字号可以定义成 CSS 变量,改起来方便。单页站最容易翻车的地方是间距。手机上 section 上下留 48 到 64 像素比较舒服,电脑上可以到 96 或 120 像素。字体别小于 16 像素,正文行高 1.6 左右,读起来不累。

图片是性能杀手。头图别直接扔 3MB 的 JPG,压到 200KB 以内,格式优先 WebP。如果浏览器不支持,再用 JPG 兜底。非首屏图片加 loading="lazy",能明显减少初次加载压力。图标用 SVG,别用一堆 PNG 雪碧图。字体如果非要用自定义,选一个字体、两个字重就够了,不然光字体文件就能拖慢半秒。
JavaScript 不需要多。移动端菜单开关、平滑滚动、滚动到可视区域再加个淡入动画、表单简单校验,这些加起来几十行就够。别为了动画引入一整个库。滚动显现可以用 IntersectionObserver,性能比监听 scroll 事件好很多。表单提交可以用 Formspree 或 Netlify Forms 这类服务,不用自己写后端。
SEO 方面,单页站所有内容都在一个 URL 下,搜索引擎抓取没问题,但每个区块没有独立 URL。标题和描述要写清楚,H1 只出现一次,H2 按区块分。结构化数据可以加 Organization 或 LocalBusiness,帮助搜索展示。锚点链接对站内跳转友好,但别指望每个 section 都排到搜索首页。如果某个服务想单独获客,还是拆成独立页面更稳。
部署比想象中简单。GitHub Pages、Netlify、Vercel、Cloudflare Pages 都有免费额度,把文件拖进去或者连上 Git 仓库,几分钟就能上线。自定义域名一年大概几十到一百多块,国内服务器还要备案,静态托管通常不用。上线后拿 Lighthouse 跑一遍,性能、可访问性、最佳实践、SEO 四项尽量往 90 分靠。移动端真机也点一遍,看看按钮好不好按,导航会不会挡住内容。
最后提醒一句,单页网站不是把内容堆一起就完事。它更像一条线,把用户从“这是啥”带到“怎么联系你”。导航清楚、加载快、手机上不别扭,这三点做到,基本就及格了。剩下的就是换文案、换图片、看数据,慢慢调。