HTML 可以使用“#name”链接将用户定向到命名的锚元素,例如<a name="name">
. 是否可以链接到任何其他属性,例如 id 或 class?'itemprop' 或 'content' 之类的 HTML5 内容怎么样?
3 回答
是的,确实最好使用id
元素的 来在页面内创建内部链接。
示例标记:
<a href="#part2">Part 2</a>
<!-- other html -->
<h2 id="part2">This is part 2</h2>
值得注意的是,一个链接只能连接到一个唯一的目标,因此class
不能使用一个(或其他属性),因为所有非id
属性都可以在许多元素之间共享/复制。而在文档中id
必须是唯一的。
您可以使用元素的名称和 ID。原因是 url 中的 hash 必须指向页面上的单个元素,并且只有 name 和 id 是必须具有唯一值的属性。
根据http://dev.w3.org/html5/spec/single-page.html#scroll-to-fragid:
对于 HTML 文档(和 HTML MIME 类型),必须遵循以下处理模型来确定文档的指示部分是什么。
解析 URL,让 fragid 成为 URL 的组成部分。
如果 fragid 是空字符串,则文档的指示部分是文档的顶部;在这里停止算法。
设解码的 fragid 是将 fragid 中任何有效 UTF-8 序列的百分比编码八位字节序列扩展为 UTF-8 定义的 Unicode 字符的结果。如果该字符串中的任何百分比编码八位位组不是有效的 UTF-8 序列(例如,它们扩展为代理代码点),则跳过此步骤和下一步。
如果没有跳过这一步,并且 DOM 中有一个元素的ID与解码后的 fragid 完全相同,那么树顺序中的第一个这样的元素就是文档的指示部分;在这里停止算法。
如果 DOM 中有一个 a 元素的name 属性的值正好等于 fragid(未解码的 fragid),那么树顺序中的第一个这样的元素就是文档的指示部分;在这里停止算法。
如果 fragid 是字符串 top 的不区分大小写的 ASCII 匹配,则文档的指示部分是文档的开头;在这里停止算法。
否则,文档中没有指定的部分。
为了 HTML 与 Selectors 的 :target 伪类进行交互,目标元素是文档的指定部分,如果那是一个元素;否则没有目标元素。