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











