HTML 书签
上一课 Link Titles & Targets 改变的是链接如何打开。书签(片段链接)改变的是你落在页面何处。长课文、常见问题与文档常常需要跳到「定价」「FAQ」或「回到顶部」,而不必加载一份全新文档。这种写法把目标上的唯一 id 与以 # 开头的 href 配对使用。
什么是页内书签
片段标识符是 URL 中 # 之后的部分。在 HTML 里,你给元素设置 id 来创建落点。随后,任何 href 为 #that-id 的链接都会让浏览器滚动到该页上第一个匹配的 id(若你在 # 前写了路径,则滚动到该页面上的匹配 id)。
直接答案
- 给目标加上
id,例如<h2 id="pricing">。 - 用
href="#pricing"建立链接。
#的意思是「找到这个 id」。同一页面上的 id 必须唯一。优先使用不含空格的短名称:用pricing,不要用Our Pricing!!。
同页目录
长页面顶部的迷你导航是经典入门示例:上方是片段链接,下方标题带有匹配的 id,再加上返回链接。
页内书签
html<nav>
<a href="#intro">Intro</a> |
<a href="#pricing">Pricing</a>
</nav>
<h2 id="intro">Intro</h2>
<p>Welcome to the guide.</p>
<h2 id="pricing">Pricing</h2>
<p>Simple plans for learners.</p>
<p><a href="#intro">Back to intro</a></p>
阅读同页示例
#intro与#pricing是片段链接,不是单独的文件- 每个标题的
id必须与#后的片段一致 - 导航可以放在任何位置;长内容常见顶部目录
- 「Back to intro」说明书签在同一文档中既可以向下也可以向上跳转
链接到另一页面的某个部分
你可以把相对(或绝对)路径与片段组合起来。浏览器先加载该页,若 id 存在再跳转到该处。
路径加片段
html<p>
<a href="guide.html#pricing">Open pricing in the guide</a>
</p>
何时使用 path#id
- 同页跳转:只用
#pricing就够了 - 项目中的另一份 HTML:
guide.html#pricing - 你信任的外部文档:当该站点公开稳定 id 时,可用以
#section-name结尾的完整 URL
若目标页缺少该 id,浏览器通常从页面顶部打开,并忽略未知片段。
id 命名习惯
- 每页一个 id 值——绝不要重复
- 尽可能以字母开头;避免空格与怪异标点
- 多词名称用连字符:
getting-started - 若其他页面会深链到这些 id,请保持名称稳定
id 面向机器与 URL;可见的标题文字可以保持易读,并与 id 字符串不同。
书签与浏览器「书签」
人们也用「书签」表示把页面存进浏览器收藏夹。本课指的是页内片段链接。浏览器收藏夹使用文档 URL(若你复制了片段,有时也会带上片段)。同一词语,日常用途不同——教别人时请把 HTML 含义说清楚。
无障碍与体验要点
当目标是真正的地标(标题、区块)时,跳转链接能帮助键盘与屏幕阅读器用户浏览长页面。不要滥加大量空 id。跳转后确保目标可见——之后学 CSS 时,粘性页眉可能盖住标题;眼下先确认正确章节已经出现。
在编辑器中练习
- 创建两个带有不同
id值的标题。 - 在它们上方添加使用
href="#…"的片段链接。 - 点击每个链接,确认页面跳到匹配的标题。
- 添加「回到顶部」链接,指向第一个标题上的 id 或顶部地标。
- 从第二个文件用
other.html#intro链接,确认跨页跳转。 - 临时重复一个 id,观察混乱,再修复唯一性。
常见错误
- 在同一页面上两次使用相同的
id - 忘记在
href中写#,导致浏览器去找文件名 - 在 id 中放入空格或怪异符号
- 链接到不存在的 id
- 把片段书签与
target="_blank"混淆(职责不同) - 指望仅凭
#pricing、不写路径就能打开另一个文件
小结
- 同页书签使用
id加上href="#id" - id 必须唯一、简短且不含空格
- 非常适合长页面与迷你目录
- 用
page.html#id跳入另一页的某个部分 - 缺失的片段通常静默失败——你停留在页面顶部
🧠 测试您的知识
测试您的知识
通过这个互动测验挑战自己,看看你对这个主题的理解程度如何
📝 说明
- 仔细阅读每个问题
- 为每个问题选择最佳答案
- 您可以随时重新参加测验
- 您的进度将显示在顶部