我应该用“name”或“id”制作HTML锚吗?

当你想用“http://example.com/#foo“方法,如果需要使用

<h1&gt&书信电报;a name=“foo”/>Foo Title&lt/h1>

<h1 id=“foo”>Foo标题(&L)/h1>

它们都起作用,但它们是平等的,还是有语义上的差异

根据HTML 5规范5.9.8,导航到片段标识符:

对于HTML文档(以及text/HTMLMIME类型),必须遵循以下处理模型来确定文档的指定部分

  1. 解析URL,并让fragid作为<碎片>URL的组件
  2. 如果fragid是空字符串,那么文档的指定部分是文档的顶部
  3. 如果DOM中有一个ID完全等于fragid的元素,那么树顺序中的第一个这样的元素就是文档的指定部分;在这里停止算法
  4. 如果DOM中有一个a元素的name属性的值正好等于fragid,那么树顺序中的第一个这样的元素就是文档的指定部分;在这里停止算法
  5. 否则,文件中没有指定的部分

因此,它将查找id=“foo”,然后再查找name=“foo”

编辑:正如@hsivonen所指出的,在HTML5中,a元素没有name属性。但是,上述规则仍然适用于其他命名元素

发表评论