小编典典

我应该使用“名称”或“ id”制作HTML锚吗?

html

当要使用“ http://example.com/#foo”方法引用网页的某个部分时,应使用

<h1><a name="foo"/>Foo Title</h1>

要么

<h1 id="foo">Foo Title</h1>

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


阅读 420

收藏
2020-05-10

共1个答案

小编典典

根据HTML5规范5.9.8导航到片段标识符:

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

  1. 解析URL,并让fragid作为URL的组件。
  2. 如果fragid是空字符串,则文档的指示部分是文档的顶部。
  3. 如果DOM中有一个元素的ID刚好等于fragid,则树形顺序中的第一个此类元素是文档的指示部分;在此处停止算法。
  4. 如果有一个是 一个 在具有名称属性,其值正好等于fragid的DOM元素,然后在树顺序中的第一元件,例如是在文档的所指示的部分;
    在此处停止算法。
  5. 否则,文档中没有指示的部分。

因此,它将寻找id="foo",然后跟随name="foo"

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

2020-05-10