名称属性已过时,处理锚点时正确的行为是什么?


18

使用w3 html5验证器测试我的代码时,出现以下警告消息:

警告:该name属性已过时。考虑将id属性放在最近的容器上。

问题:

  • 最近的容器是什么意思?
  • <a>现在是否已弃用空?
  • 我应该使用id代替name吗?

Answers:


9

[A]是否已弃用整个空的占位符标签,而锚点可以简单地指向具有id的任何元素呢?

我更喜欢将用户跳转到需要页面内链接的标题标签(遵循MediaWiki的默认行为),但是可以,您可以处理任何元素的ID。


17

如果您需要将用户跳至页内链接(也称为片段标识符),则可以在任何元素上设置id属性(不仅仅用于frag ids)。然后在元素的属性的URL中使用通常的格式。这是一个例子:#hrefa

<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每个<section>标记(HTML5)赋予一个。的值id是其标题内容的URL友好版本。您可以通过分配同样达到同样的效果id,以一个<h1>

最后,<a>HTML5规范中所示,不建议使用空标签:

如果该a元素没有href属性,则该元素代表一个占位符,否则可能会放置链接……

另外,同样适用于area元素

元素和元素href上的属性不是必需的;当这些元素没有属性时,它们将不创建超链接。aareahref


2

对于HTML5,name现在不推荐使用属性,因此意味着可以使用id来代替name。否则,其他所有内容都相同。

<a> 不被弃用。


虽然这个答案很不错,但如果提供指向文档的链接或说明过时的文章,将会使它变得更好。
斯蒂芬·奥斯特米勒

1
具体来说,已弃用/过时的是元素name上的属性。该属性在其他元素上仍然完全有效(并且是必需的)。name
MrWhite
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.