我应该使用'name'还是'id'来创建HTML锚点?

33 浏览
0 Comments

我应该使用'name'还是'id'来创建HTML锚点?

当需要使用\"http://example.com/#foo\"的方式引用网页的某一部分时,应该使用哪个呢:

Foo Title

 

还是

Foo Title

 

?它们都可以使用,但它们是否相等或具有语义差异?

admin 更改状态以发布 2023年5月21日
0
0 Comments

在任何HTML的变种中,都不应该使用

Foo Title

,因为XML的空元素语法在text/html中不被支持。然而,

Foo Title

在HTML4中是可以的。在目前起草的HTML5中不合法。

Foo Title

在HTML4和HTML5都是可以的。这在Netscape 4中不起作用,但你可能会使用其他九十二个在Netscape 4中不起作用的功能。

0
0 Comments

根据HTML 5规范,5.9.8 导航到一个片段标识符:\n对于HTML文档(和\"text/html\" MIME类型),必须遵循以下处理模型来确定文档的指定部分。\n1.解析URL,并将fragid作为URL的组件。\n2.如果fragid是空字符串,则文档的指定部分是文档的顶部。\n3.如果DOM中有一个ID完全等于fragid的元素,则树顺序中的第一个这样的元素是文档的指定部分;在这里停止算法。\n4.如果DOM中有一个a元素,其name属性的值完全等于fragid,则树顺序中的第一个这样的元素是文档的指定部分;在这里停止算法。\n5.否则,没有指定的文档部分。\n\n所以,它将查找id=\"foo\",然后会转到name=\"foo\"\n编辑:正如@hsivonen所指出的,在HTML5中,元素没有name属性。但是,上述规则仍然适用于其他命名元素。

0