我应该用‘name’或‘id’来制作HTML锚吗?

我应该用‘name’或‘id’来制作HTML锚吗?

当您想要引用网页的某个部分时,请使用http://example.com/#foo“方法,应该使用吗?

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

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

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


守着一只汪
浏览 665回答 3
3回答

精慕HU

根据HTML 5规范,5.9.8导航到片段标识符:对于HTML文档(以及text/html MIME类型),必须遵循以下处理模型来确定文档的指定部分。解析URL,并让fragid成为URL的<片段>组件。如果fragid是空字符串,那么文档的指定部分是文档的顶部。如果DOM中有一个ID完全等于fragid的元素,那么按树顺序排列的第一个这样的元素是文档的指定部分;请在这里停止算法。如果有一个a元素中的元素,该元素具有一个name属性,其值与fragid完全相等,那么按树顺序排列的第一个此类元素是文档的指定部分;请在此停止算法。否则,文件中没有指明的部分。所以,它会寻找id="foo",然后将跟随到name="foo"编辑:正如@xivonen所指出的,在HTML 5中,a元素没有name属性。然而,上述规则仍然适用于其他命名元素。

慕娘9325324

我不得不说,如果你要链接到页面中的那个区域.例如page.html#foo和foo title不是您应该使用的链接:<h1&nbsp;id="foo">Foo&nbsp;Title</h1>如果你把一个<a>你的标题会受到<a>特定的CSS在您的网站。这只是额外的标记,你不应该需要它。我强烈建议在标题上放置一个id,不仅它的格式更好,而且它将允许您在Javascript或CSS中访问该对象。
打开App,查看更多内容
随时随地看视频慕课网APP