HTML 教程 / 创建链接:路径、页内跳转与电子邮件
使用 a 元素创建一个 HTML 链接,并将其目标设置为 href。目标可以是另一个页面、文件、文档中的某个位置或电子邮件地址。编写一个链接文本,让读者知道他们将要去哪里。
使用 a 和 href 创建一个基本链接
用 a 包裹可见的链接文本,并将目标 URL 设置在 href 中。这个例子指向 Coding Factory 关于 HTML 列表的中文课程。列表的类型和嵌套规则将在 列表:ul、ol、dl 及嵌套列表 中解释。
<a href="https://www.codingfactory.net/zh/18641">HTML 列表教程</a>
“HTML 列表教程” 是可见文本;URL 是目标。如果 a 没有 href,则不是普通的导航链接。将 href="#" 用作占位符可能会意外导致页面向上导航。
理解绝对和相对 URL
以 https:// 开头的绝对 URL 包含目标的域名。相对 URL 可以指向当前文档位置的文件或网站根目录中的文件。练习在 创建一个小型多页面网站 的三个文档中保持相同的菜单。
以下路径 about.html 和 ../contact.html 是练习示例,而不是 Coding Factory 当前存在的页面。假设您在 lessons/index.html 中根据此文件夹结构书写链接:
site/
contact.html
lessons/
index.html
about.html
<a href="https://www.codingfactory.net/zh/18641">完整 URL</a>
<a href="about.html">此文件夹中的介绍页面</a>
<a href="../contact.html">上级文件夹中的联系页面</a>
<a href="/zh/18641">本网站上的 HTML 列表</a>
about.html 会针对当前文档解析。以 / 开头的路径将从网站根目录解析。本地文件 file:// 的根目录与已提供的网站不同,因此部署后请重新测试相对路径。
链接到文档中的某个位置
为目标元素指定一个唯一的 id,然后在链接中使用 # 加上该值。
<a href="#contact">转到联系信息</a>
<h2 id="contact">联系</h2>
<p>联系信息在这里。</p>
要到达另一文件中的位置,请将片段添加到其 URL:about.html#contact。避免在单个页面上重复使用相同的 id。
指向电子邮件和新标签页的链接
mailto: URL 会提示用户的电子邮件应用程序创建一条消息。如果没有配置电子邮件应用程序,这可能无法按预期工作。
<a href="mailto:hello@example.com">写一封电子邮件</a>
要在新标签页中打开外部网站,请使用 target="_blank",并按本站的链接规范添加 rel="noopener noreferrer"。
<a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/a"
target="_blank" rel="noopener noreferrer">a 元素在 MDN 上的参考</a>
如果适合读者的任务,请选择新标签页,并在链接文本或附近的说明中说明该行为。
download 属性的作用
download 属性会提示浏览器下载链接的文件。例如,它可以用于同一网站上托管的图片。
<a href="/wp-content/uploads/html-image-sample-lake-tree-1600-v1.webp" download>下载示例图片</a>
download 适用于同源的 URL(相同的协议、相同的主机和相同的端口)以及 URL blob: 和 data:。它无法强制下载其他网站的常规 URL。即使是同源的文件,浏览器设置和服务器响应也会影响其行为。
| 链接类型 | 预期结果 | 环境检查 |
|---|---|---|
href="#section-id" |
跳转到同一文档中的相应 ID | ID 拼写、唯一性和目标存在性 |
target="_blank" |
在新的浏览器上下文中打开目标 | 浏览器设置决定以标签页还是窗口打开 |
download |
当符合条件时提供下载 | 通常适用于同源的 URL,blob: 或 data:;响应头和浏览政策也很重要 |
mailto: |
调用配置的电子邮件处理程序 | 需要一个处理程序,并且不会自动发送电子邮件 |
使用三个实际文件测试相对路径
将这三个文件保存到之前的文件夹结构 site/ 中。这个练习是为了检查在文件之间的导航,而不是发送真实的联系信息。
site/lessons/index.html
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>路径练习的首页</title>
</head>
<body>
<h1>路径练习的首页</h1>
<nav aria-label="练习菜单">
<a href="about.html">介绍</a>
<a href="../contact.html">联系</a>
</nav>
</body>
</html>
site/lessons/about.html
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>介绍</title>
</head>
<body>
<h1>介绍</h1>
<nav aria-label="练习菜单">
<a href="index.html">练习首页</a>
<a href="../contact.html">联系</a>
</nav>
</body>
</html>
site/contact.html
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>联系</title>
</head>
<body>
<h1>联系</h1>
<nav aria-label="练习菜单">
<a href="lessons/index.html">练习首页</a>
<a href="lessons/about.html">介绍</a>
</nav>
</body>
</html>
| 源文件 | 链接 | 目标 |
|---|---|---|
| lessons/index.html | about.html |
lessons/about.html |
| lessons/index.html | ../contact.html |
contact.html |
| contact.html | lessons/index.html |
lessons/index.html |
打开每个文件,跟随它们的链接,并比较地址栏中的文件夹。../ 向上一级目录。如果链接失败,请从源文件的文件夹中解决问题,而不是猜测其他文件名。在实验后恢复表格中的路径。
在发布之前检查链接
- 使用类似“HTML 列表教程”的文本,而不是“点击这里”。
- 从提供文档的实际存储位置测试相对路径。
- 检查
#id片段是否与其目标完全匹配。 - 请记住,电子邮件和下载链接取决于浏览器和用户环境。
有关 URL 和属性的更多详细信息,请参阅 MDN 的 a 元素参考。




