0

在过去,我见过使用锚元素和id/或name属性(以 id 优先)指定锚点的示例。

但是,就可访问性/跨浏览器支持而言,我应该使用锚元素而不是任何其他元素有什么特别的原因吗?

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

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

可以简化为:

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

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

4

2 回答 2

3

就可访问性/跨浏览器支持而言,我应该使用锚元素而不是任何其他元素有什么特别的原因吗?

没有了,不会再有了。

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

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

这是推荐的方式 - 这就是你应该这样做的方式。

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

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

于 2012-11-15T12:00:12.743 回答
0

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

  1. 历史原因。

  2. 任何 html 驱动器中的 HtmlHelpers,例如 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));
    }
    

在我的 MVC 项目中。

于 2012-11-15T12:04:34.247 回答