【问题标题】:If <a name="..."> is obsolete, what is preferred?如果 <a name="..."> 已过时,首选什么?
【发布时间】:2013-06-07 00:38:04
【问题描述】:

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

如果是这种情况,那么首选的是什么?是否有新的&lt;bookmark&gt; 标签或类似标签?

【问题讨论】:

标签: html w3c obsolete


【解决方案1】:

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

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

【讨论】:

  • name 和 id 不可互换。整个页面的 id 必须是唯一的,并且名称可以重复。
【解决方案2】:

查看 HTML5 规范。

Obsolete features,您会发现:

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

点击name,你会发现:

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

  • namea 元素上(除了上一节中提到的)
  • name on embed 元素
  • nameimg 元素
  • nameoption 元素上

→ 请改用id 属性。

点击id。你会看到id 是一个global attribute,这意味着它可以用于任何元素。

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

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

      <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>
      

      在编写自己的页面时,我喜欢给每个 &lt;section&gt; 标签 (HTML5) 加上一个 id,即使我不打算使用它。 id 的值是其标题内容的 URL 友好版本。您可以通过将相同的id 分配给&lt;h1&gt; 等来实现相同的效果。

      【讨论】:

        【解决方案5】:

        使用 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>
        

        但我只是继续使用名称标签,因为它没有性能影响或其他任何东西,所以弃用这种轻微的东西是愚蠢的,如果浏览器决定不接受名称标签会导致问题。它也使我们偏离了使用标准。

        【讨论】:

        • 这个问题是关于使用片段 URL 链接到一个元素。要求这个 ID 是唯一的似乎是合理的!
        猜你喜欢
        • 2019-03-08
        • 2014-02-09
        • 1970-01-01
        • 2012-10-19
        • 1970-01-01
        • 1970-01-01
        • 2018-03-10
        • 1970-01-01
        • 2011-02-26
        相关资源
        最近更新 更多