我应该用锚元素指定锚吗?

时间:2012-11-15 11:58:01

标签: html anchor

过去我见过使用锚点元素指定锚点的示例,以及idname属性(with id taking precedence)。

但是,在可访问性/跨浏览器支持方面,我是否应该使用锚元素而不是任何其他元素?

例如,我可以使用以下标记的网址http://domain.com/page.htm#faq

<a id="faq"></a>
<h1>Frequently Asked Questions</h1>

可以简化为:

<h1 id="faq">Frequently Asked Questions</h1>

使用第二个标记有什么害处吗?是否有一个特殊原因导致开发人员更喜欢空锚而不是将id附加到更相关的元素上?

2 个答案:

答案 0 :(得分:3)

  

在可访问性/跨浏览器支持方面,我是否应该使用锚元素而不是任何其他元素?

不,不再了。

历史上(在HTML 4之前),命名锚点是页面锚点的唯一方法。

  

使用第二个标记有什么害处吗?

这是推荐的方式 - 你应该怎么做。

  

为什么开发人员更喜欢空锚而不是将id附加到更相关的元素上,是否有特殊原因?

只缺乏学习和适应变化;)

答案 1 :(得分:0)

编写代码是可以的。使用第一个代码有两点:

  1. 历史原因。

  2. HtmlHelpers在任何html驱动器中,如Razor。例如,我可以使用这样的东西:

    public static MvcHtmlString Anchor<TModel>(this HtmlHelper<TModel> htmlHelper, string anchorId)
    {
        var tag = new TagBuilder("a");
        tag.Attributes.Add("id", anchorId);
        return MvcHtmlString.Create(tag.ToString(TagRenderMode.Normal));
    }
    
  3. 在我的MVC项目中。