如果<a name="..."> is obsolete, what is preferred?</a>

时间:2013-06-07 00:38:04

标签: html w3c obsolete

HTML代码<a name="some_bookmark">text</a>对于创建指向网页特定部分的链接非常有用(例如page.html#some_bookmark)。但是,W3C规范现在将name标记的a属性标记为“已过时”。

如果是这种情况,那么首选什么?是否有新的<bookmark>代码或类似内容?

5 个答案:

答案 0 :(得分:26)

您可以在任何元素上放置id=""属性,它将具有相同的效果。

这些通常放在标题元素上。

答案 1 :(得分:11)

查看HTML5规范。

Obsolete features您会找到:

  

作者不应在name元素上指定a属性。

点击name后,您会找到:

  

[以下属性已过时(尽管元素仍然是语言的一部分),作者不得使用:]

     
      关于name元素的
  • a(除了上一节中所述)
  •   {li> name embed元素   {li> name img元素   {li> name option元素   
     

→改为使用id属性。

点击id。您会看到idglobal attribute,这意味着它可以在任何元素上使用。

  

id属性指定其元素的唯一标识符(ID)   [...]
  注意:元素的唯一标识符可用于各种目的,最明显的是使用片段标识符链接到文档的特定部分,作为在编写脚本时定位元素的方法,以及作为从CSS设置特定元素的方式。

答案 2 :(得分:3)

您应该使用id=""属性。 :)

答案 3 :(得分:0)

(注意:从https://webmasters.stackexchange.com/a/30031/10884迁移并进行了简洁编辑。)

如果您需要将用户跳转到页内链接(也称为片段标识符),则可以在id属性(used for more than just frag ids) >任何元素。然后在#元素的href属性的网址中使用通常的a。这是一个例子:

<body>
  <p>Despite the many
    <a href="#benefits-of-gum-chewing">benefits</a>
    you may experience while chewing gum, there are also many drawbacks,
    especially with 
    <a href="http://www.example.org/sugar.html#cons">non-sugarless</a>
    gum.</p>
  ...
  <section id="benefits-of-gum-chewing">
    <h1>Benefits of Gum Chewing</h1>
    ...
  </section>
</body>

在编写自己的网页时,我希望为每个id代码(HTML5)提供<section>,即使我不打算使用它也是如此。 id的值是其标题内容的URL友好版本。您可以通过将相同的id分配给<h1>等来实现相同的效果。

答案 4 :(得分:0)

使用id并不总是理想的,因为它们是唯一的,例如,如果您有一个链接列表作为菜单项,并且当用户将鼠标悬停在菜单上时,您只想对其中的某些脚本执行一些javascript,则使用id是一团糟。

目前我认为最好的方法是使用 class 将它们标识为一个组。所以类似这样:

<a class="mylink">Menu Item one</a>
<a class="mylink">Menu Item two</a>
<a class="mylink">Menu Item three</a>
<a>Menu Item four</a>

但是我一直继续使用name标签,它愚蠢地弃用了这个次要的东西,因为它没有任何性能影响或其他任何影响,如果浏览器决定一时不接受name标签,只会引起问题。它也使我们远离使用标准。