HTML 链接¶
a 元素通过 href 创建导航。好的链接具有明确目标、可理解的链接文字,并且不会把用户
意外带到危险协议或不可预期的新窗口。
学习目标¶
- 创建相对链接、绝对链接和页内片段链接。
- 编写脱离上下文仍然清楚的链接文字。
- 安全处理新标签页、下载和外部生成的 URL。
核心概念¶
<nav aria-label="教程导航">
<a href="index.md">教程首页</a>
<a href="images.md">学习 HTML 图片</a>
<a href="#common-errors">跳到常见错误</a>
</nav>
相对 URL 以当前文档 URL 为基准解析。./ 表示当前路径,../ 表示上一级路径;
URL 使用 /,不是 Windows 文件路径中的反斜杠。片段链接会寻找具有匹配 id 的元素。
链接文字¶
链接文字应说明目的,例如“阅读图片替代文本指南”比“点击这里”更容易扫描。 不要把完整 URL 作为普通说明文字,除非用户确实需要阅读或复制该地址。
外部链接与新标签页¶
默认在当前上下文打开通常最符合用户预期。确有理由使用新标签页时,应在文字中说明:
现代浏览器通常会隔离 _blank 的 opener,显式 noopener 仍能表达安全意图;
noreferrer 还会抑制来源信息,应根据业务需求选择。
下载与其他协议¶
download 是下载提示,不保证资源一定下载,也受同源策略和响应头影响。mailto:、tel:
会调用相应应用,使用前应让用户知道将发生什么。
不可信输入不能直接成为 href。应用应使用 URL 解析器检查协议和目标,按业务只允许 https:、
可信站内相对路径等,并拒绝脚本协议和含糊的字符串前缀判断。
常见错误¶
- 使用空
href或href="#"代替真正的按钮操作。 - 所有链接文字都写成“更多”或“点击这里”。
- 相对路径层级错误,或文件名大小写与部署环境不一致。
- 强制所有外部链接打开新标签页却不给提示。
- 将用户输入直接拼接到
href,未校验协议和目标。