0

HTML 可以使用“#name”链接将用户定向到命名的锚元素,例如<a name="name">. 是否可以链接到任何其他属性,例如 id 或 class?'itemprop' 或 'content' 之类的 HTML5 内容怎么样?

4

3 回答 3

2

是的,确实最好使用id元素的 来在页面内创建内部链接。

示例标记:

<a href="#part2">Part 2</a>

<!-- other html -->

<h2 id="part2">This is part 2</h2>

JS 小提琴演示

值得注意的是,一个链接只能连接到一个唯一的目标,因此class不能使用一个(或其他属性),因为所有非id属性都可以在许多元素之间共享/复制。而在文档中id 必须是唯一的。

于 2012-05-19T19:10:24.663 回答
1

您可以使用元素的名称和 ID。原因是 url 中的 hash 必须指向页面上的单个元素,并且只有 name 和 id 是必须具有唯一值的属性。

于 2012-05-19T19:12:38.000 回答
1

根据http://dev.w3.org/html5/spec/single-page.html#scroll-to-fragid

对于 HTML 文档(和 HTML MIME 类型),必须遵循以下处理模型来确定文档的指示部分是什么。

  1. 解析 URL,让 fragid 成为 URL 的组成部分。

  2. 如果 fragid 是空字符串,则文档的指示部分是文档的顶部;在这里停止算法。

  3. 设解码的 fragid 是将 fragid 中任何有效 UTF-8 序列的百分比编码八位字节序列扩展为 UTF-8 定义的 Unicode 字符的结果。如果该字符串中的任何百分比编码八位位组不是有效的 UTF-8 序列(例如,它们扩展为代理代码点),则跳过此步骤和下一步。

  4. 如果没有跳过这一步,并且 DOM 中有一个元素的ID与解码后的 fragid 完全相同,那么树顺序中的第一个这样的元素就是文档的指示部分;在这里停止算法。

  5. 如果 DOM 中有一个 a 元素的name 属性的值正好等于 fragid(未解码的 fragid),那么树顺序中的第一个这样的元素就是文档的指示部分;在这里停止算法。

  6. 如果 fragid 是字符串 top 的不区分大小写的 ASCII 匹配,则文档的指示部分是文档的开头;在这里停止算法。

  7. 否则,文档中没有指定的部分。

为了 HTML 与 Selectors 的 :target 伪类进行交互,目标元素是文档的指定部分,如果那是一个元素;否则没有目标元素。

于 2012-05-19T19:13:51.127 回答