2012-11-15 31 views
0

在過去我見過使用錨點元素指定錨點的示例,以及idname屬性(with id taking precedence)。我是否應該使用錨點元素指定錨點?

但是,在可訪問性/跨瀏覽器支持方面,爲什麼我應該在任何其他元素上使用錨點元素有什麼特別的原因?

比如我可以一個URL http://domain.com/page.htm#faq與下面的標記:

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

這可以簡化爲:

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

是否有使用第二個標記任何傷害?爲什麼開發者更喜歡空錨而不是將id附加到更相關的元素上,是否有特定的原因?

+0

我已經_never_使用第一種方法。我沒有看到第二個問題,我一直都在使用它。可能是過去的殘餘。 –

+0

@基督教 - 你太年輕了,不記得;)的確,過去的殘餘。 – Oded

回答

3

是否有任何特殊的原因,爲什麼我應該在任何其他元素上使用錨點元素,就可訪問性/跨瀏覽器支持而言?

不,不是。

從歷史上看(HTML 4之前),命名錨是頁面定位的唯一方法。

使用第二個標記有什麼危害嗎?

這是推薦的方式 - 這就是你應該怎麼做。

爲什麼開發人員更喜歡空錨而不是附加id到更相關的元素?

唯一欠缺的學習和適應變化的;)

+0

+1感謝Oded,這讓我放心繼續使用第二種方法,而不必擔心我阻止了x%的用戶! – Curt

+0

@Curt - 只有那些使用Mozilla 3,IE 3.02等等;) – Oded

+0

哈,好吧,我非常樂意阻止它們! – Curt

0

這是確定編寫代碼。有兩點使用第一碼:

  1. 歷史原因。

  2. HtmlHelpers在任何html驅動器,如剃刀。例如,它看起來不錯,我用這樣的:

    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項目。