当人们想用“http://example.com/#foo“方法,应该使用

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

or

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

它们都有效,但它们是相等的,还是有语义差异?


当前回答

第二个示例为所讨论的元素分配一个唯一的ID。然后可以使用DHTML操纵或访问该元素。

另一方面,第一个方法在文档中设置一个命名位置,类似于书签。连接到一个“锚”,这是完全合理的。

其他回答

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

是应该使用的。除非你想要链接,否则不要使用锚点。

我有一个由多个垂直堆叠的div容器组成的网页,格式相同,序列号不同。我想在每个div的顶部隐藏名称anchor,因此最经济的解决方案是将anchor作为id包含在打开的div标记中,即,

<div id="[serial number]" class="topic_wrapper">

现在不是关于支持的问题,因为2021谁会关心比IE6更旧的浏览器?

请注意,Stacksoverflow仍在使用锚点和“name”属性,而不是“name”特性。

Why?

因为你:

SINGLE元素上的id不能有两个值。

#样品{颜色:红色;}<div id=“postNr4245 sample”>示例文本</div><!--着色不起作用--><a href=“#postNr4245”>跳转到帖子</a><!--跳跃不起作用-->

好吧,你可以说你可以用“class”来实现这一点。

这是真的,但如果只有一个元素需要在站点上设置样式,那么就不应该使用类。

Why?

因为如果您使用CSS选择器#idName,并且web浏览器找到了该元素,它就不会再看下去了。它加快了网站的加载速度。

如果您使用.class,它需要查找DOM的每个位置,因为web浏览器不知道您是否使用过.class一次或多次。

如果要在CSS中设置“id”值的样式或使用JS解析它,则不能以数字开头。但是,可以以数字开头“name”值。

没有语义差异;标准的趋势是使用id而不是名称。然而,在某些情况下,有些差异可能会导致人们更喜欢名字。HTML 4.01规范提供了以下提示:

使用id或名称?作者在决定是否使用id或名称作为锚点名称时应考虑以下问题:

id属性可以不仅仅用作锚点名称(例如,样式表选择器、处理标识符等)。一些较旧的用户代理不支持使用id属性创建的锚点。name属性允许更丰富的锚点名称(带有实体)。

ID方法在较旧的浏览器上不起作用,锚定名称方法在较新的HTML版本中将被弃用。。。我会和id一起去。