HTML: HTML 链接

链接(超链接)就像是连接网页的纽带——如果没有这些链接,互联就无法构成“络”。通过使用<a>标签,您可以浏览不同页面、跳转至页面中的特定部分、下载文件或者发送电子邮件。

1. 链接的基本语法

链接由 <a> 标签(anchor,锚点)定义,其中 href 属性(hypertext reference)指定了点击后要跳转到的目标地址:

▶ 示例

HTML
<a href="https://web-tutorial.com/">访问示例网站</a>
▶ 试一试

上面这段代码在浏览器中会显示为可点击的文本"访问示例网站",默认样式是蓝色文字加下划线。当你点击它时,浏览器会导航到 href 中指定的网址。

💡 提示: 链接文本应当能清楚地告诉用户点击后会看到什么,比如"点击这里"就不如"查看完整的用户指南"来得好——既方便用户判断,对搜索引擎也更友好。


2. 打开方式:target 属性

默认情况下,链接在当前页面打开(覆盖当前页面)。如果你希望点击后在新标签页或新窗口中打开,可以使用 target 属性:

▶ 示例

HTML
<a href="https://web-tutorial.com/" target="_blank">在新标签页中打开</a>

<a href="/html/index.html" target="_self">在当前页面打开(默认行为)</a>

<a href="..." target="_blank" rel="noopener">链接</a>。

▶ 试一试

target 的常用取值:

⚠️ 安全提醒: 使用target="_blank"时,建议在链接上加 rel="noopener" rel="noreferrer"。这能防止新页面通过 window.opener访问原页面的对象,避免潜在的安全风险。


3. 绝对路径与相对路径

链接的目标地址可以是绝对路径,也可以是相对路径。两者的区别很简单——绝对路径包含完整的网址,相对路径只写相对于当前页面的位置:

▶ 示例

HTML
<!-- 绝对路径:完整的网址 -->
<a href="https://www.google.com">访问 Google</a>

<!-- 相对路径:相对于当前文件的位置 -->
<a href="basics.html">HTML 基础</a>

<!-- 相对路径:上级目录 -->
<a href="../index.html">返回首页</a>
▶ 试一试

4. 锚点链接:跳转到页面内的某个位置

锚点链接让你点击后直接跳转到同一个页面的某个指定位置——适合长页面"回到顶部"或"目录跳转"。实现起来只需要两步:先给目标位置设置一个 id,然后在链接中用 #id 指向它。

▶ 示例

HTML
<!-- 目录 -->
<a href="#section-intro">跳到简介</a>
<a href="#section-details">跳到详情</a>

<!-- 目标位置(设了高度,方便看到跳转效果) -->
<h2 id="section-intro">简介</h2>
<p style="min-height:600px;background:#f0f0f0;">这里是简介的内容……</p>

<h2 id="section-details">详情</h2>
<p style="min-height:600px;background:#f0f0f0;">这里是详细说明……</p>

▶ 试一试

锚点也支持跨页面跳转——只需要在链接中同时指定页面和锚点,例如 <a href="basics.html#section-head">查看头部结构</a>。浏览器会先打开那个页面,然后自动滚动到指定位置。


5. 图片链接与更多用法

链接不限于文字——把 <img> 标签放在 <a> 标签内部,图片就变成了可点击的链接。此外 <a> 还可以用来下载文件和发送邮件:

▶ 示例

HTML
<!-- 图片链接 -->
<a href="https://www.example.com">
  <img src="/assets/images/tutorials/html-banner-example.webp" alt="Click to learn more">
</a>

<!-- 下载链接 -->
<a href="document.pdf" download>下载 PDF 文档</a>

<!-- 邮件链接 -->
<a href="mailto:support@example.com">发邮件给我们</a>
▶ 试一试
📌 补充: <a> 还有一个常用属性 title,用来在鼠标悬停时显示提示文字:<a href="..." title="点击查看完整教程">HTML 教程</a>。这个提示对辅助设备(如屏幕阅读器)也很友好。

❓ 常见问题

Q 为什么使用target="_blank"时要加rel="noopener"
A 这是一个安全防护措施。当链接使用target="_blank"在新标签页打开时,新页面可以通过window.opener访问原页面的window对象,这可能导致恶意页面篡改原页面的内容或进行钓鱼攻击。加上rel="noopener"会切断这种访问关系,保护原页面安全。建议所有target="_blank"的链接都加上rel="noopener"rel="noreferrer"
Q 绝对路径和相对路径有什么区别?什么时候用哪个?
A 绝对路径包含完整的网址(如https://example.com/page.html),指向站外资源或需要明确域名的场景;相对路径只写相对于当前文件的位置(如./about.html../index.html),用于同一网站内的页面跳转。根路径(如/html/index.html)从网站根目录开始定位,适合大型网站。建议:站内链接用相对路径,站外链接用绝对路径。
Q 锚点链接不生效怎么办?
A 常见原因:1)目标元素没有设置id属性;2)id值拼写错误(区分大小写);3)id在页面中不唯一(浏览器会跳转到第一个匹配的元素);4)目标元素被display:none隐藏了。检查方法:在浏览器控制台输入document.getElementById("你的id"),如果返回null说明id不存在。

📖 小节

📝 作业

  1. 创建一个链接:写一个指向 https://www.google.com 的链接,要求在新标签页打开,且链接文本为"去 Google 搜索"。
  2. 锚点导航:在当前页面底部创建一个"返回顶部"链接,指向页首(提示:给 <body>id 或用 # 配合顶部元素)。
  3. 自查:查看你自己写的页面源码,找到所有的 <a> 标签,看看它们的 hreftarget 是怎么设置的——你能说出每个链接会在哪里打开吗?
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏