最稳的首页链接用绝对路径首页;SPA中需用window.location.href = "/"或框架路由方法;仅作语义标识不响应点击;按钮替代链接须增强可访问性。

怎么写一个真正能回首页的链接
不是所有 <a href="..."></a> 都能回首页,关键看路径写对没。相对路径容易掉坑里,比如在 /blog/post1.html 里写 <a href="index.html"></a>,点开会找 /blog/index.html,而不是你想要的根目录首页。
- 最稳的是用绝对路径:
<a href="/index.html">首页</a>(前面带/,从域名根开始) - 如果首页是
/index.html,也可以直接写<a href="/">首页</a>,多数服务器会自动映射到index.html - 别用
<a href="index.html"></a>或<a href="./index.html"></a>,它们依赖当前页面位置,一嵌套就失效
为什么 window.location.href = "/" 有时比链接更可靠
纯 HTML 链接在某些单页应用(SPA)或路由被前端接管的场景下可能不生效——比如用了 Vue Router 或 React Router,点击 <a href="/"></a> 可能被拦截、不触发跳转。这时候得靠 JS 主动跳转。
- 简单跳转:
window.location.href = "/";—— 强制浏览器重新加载根路径 - 如果不想刷新(比如 SPA 内部导航),得调用框架自己的路由方法,比如
router.push("/")(Vue Router)或navigate("/")(React Router v6+) - 注意:直接改
window.location会触发完整页面重载,和点击链接行为一致;但若页面有未保存表单,它不会提示,这点比原生链接“激进”
<link rel="home"> 不是用来点的
这个标签常被误当成“首页按钮”,其实它只是给浏览器、爬虫或辅助工具(如屏幕阅读器)提供语义信息,完全不生成可见按钮,也不响应点击。
- 正确用法:
<link rel="home" href="/">放在里 - 它不会出现在页面上,也不会影响用户操作——想让用户点,还得老老实实写
<a></a>或按钮 - 某些旧版浏览器或阅读器可能用它实现快捷导航,但不可依赖,更不能当功能替代
用按钮代替链接时要注意可访问性
有人喜欢用 <button onclick="..."></button> 做首页入口,视觉上更灵活,但默认不支持右键新标签页、无法被键盘 Enter 触发,还可能被屏幕阅读器识别为操作型控件而非导航。
立即学习“前端免费学习笔记(深入)”;
- 如果非要用按钮,至少加
role="link"和tabindex="0",并监听Enter和Space键 - 更推荐:用
<a></a>+ CSS 改样式,既保留原生语义和行为,又可控外观 - 千万别写
<button onclick="window.location='/'"></button>还不处理键盘事件——这是可访问性硬伤



















