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


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


问题:


最近的容器是什么意思?
是否已弃用空的<a>
我应该使用id而不是name吗?


#1 楼


[A]将空占位符标签作为一个整体弃用,并且锚点可以
简单地指向具有id的任何元素



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

#2 楼

如果需要将用户跳转到页面内链接(也称为片段标识符),则可以在任何元素上设置id属性(不仅用于片段ID)。然后,在#元素的href属性的URL中使用通常的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>等来实现相同的效果。

最后,不赞成使用空的<a>标签,如HTML5规范所示:


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


另外,area元素同样适用:


不需要hrefa元素上的area属性;当这些元素不具有href属性时,它们将不创建超链接。


#3 楼

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

不赞成使用<a>

评论


虽然这个答案很不错,但如果提供指向文档的链接或说明该弃用的文章,将会使它变得更好。

–斯蒂芬·奥斯特米勒(Stephen Ostermiller)
17年7月14日在0:51

具体来说,已弃用/过时的是锚元素上的name属性。 name属性在其他元素上仍然完全有效(并且是必需的)。

–怀特先生
17年7月14日在0:53