a 标签唯一的必填项是 href

这个页面本身就在 iframe 里,下面的页内锚点点了会在框内滚动。

页内目录(锚点跳转)
↑ 目录 ↑ 这段空白只是为了让页面能滚起来

相对路径与绝对路径

假设当前页面是 /blog/2026/intro.html:

写法指向说明
intro.html/blog/2026/intro.html纯文件名:同目录
../img/a.png/blog/img/a.png.. 上一级
./a.md/blog/2026/a.md. 当前目录,可省略
/img/a.png/img/a.png以 / 开头 = 站点根,最推荐,不受当前页所在层级影响
https://…整站外部带协议名的绝对 URL,只用于真的要去站外

本站挂在子路径 /nuxt/ 下,所以教程里所有站内示例都用 / 开头的站内路径,不写 ./../../ 这种跟着目录跑的相对链——部署路径一变就全断。

外部链接示例:MDN Web Docs(新标签页)

页内锚点

任何带 id 的元素都是锚点目标,不一定要用旧的 <a name>:

↑ 回到「相对路径」那一节 | 跳到 target 一节

跨页锚点把两段拼起来写:/tutorials/html.html#表格。本页顶部标题「a 标签唯一的必填项」下面其实也有个隐式目标——浏览器地址栏里会显示带 # 的完整 URL,可以直接发给别人。

target 与 rel 的安全写法

外站链接开新标签页时,必须补上 rel="noopener":

<a href="https://example.com" target="_blank" rel="noopener">外部</a>

历史原因是旧浏览器里被打开的页面能通过 window.opener 反过来改你本页的 location(tabnabbing 钓鱼)。现代浏览器对 target="_blank" 已默认隐含 noopener,但显式写上更稳妥,也能防住老版本。

站内链接不要加 target="_blank":它会切断用户的返回路径,还多占一个标签页。