我應該使用'name'或'id'製做HTML Anchor嗎?

當想要使用「 http://example.com/#foo 」方法引用網頁的某些部分時,應該使用 瀏覽器

<h1><a name="foo"/>Foo Title</h1>

要麼 安全

<h1 id="foo">Foo Title</h1>

他們都工做,但他們是平等的,仍是他們有語義差別? app


#1樓

<h1 id="foo">Foo Title</h1>

是什麼應該使用。 除非您想要連接,不然不要使用錨點。 spa


#2樓

我有一個由多個垂直堆疊的div容器組成的網頁,格式相同,只有序列號不一樣。 我想在每一個div的頂部隱藏名稱錨點,所以最經濟的解決方案是將錨點做爲開頭div標籤中的id包括,即, code

<div id="[serial number]" class="topic_wrapper">

#3樓

維基百科大量使用此功能,以下所示: ip

<a href="#History">[...]</a>
<span class="mw-headline" id="History">History</span>

維基百科正在爲每一個人工做,因此我以爲這個表格很安全。 get

另外請不要忘記,您不只可使用spans,還可使用div或甚至表格單元格,而後您能夠訪問元素上的:target僞類。 只要注意不要改變寬度,就像粗體文字同樣,致使內容移動,這是使人不安的。 it

命名錨點 - 個人投票是避免: class

  • 「名稱和ID在同一名稱空間中......」 - 具備相同名稱空間的兩個屬性很是瘋狂。 咱們只是說已經棄用了。
  • 「錨定沒有href屬性的元素」 - 再一次,元素的性質(超連接或非超連接)是經過具備屬性來定義的。 雙重瘋狂。 常識說要徹底避免它。
  • 若是您在沒有僞類的狀況下設置錨點樣式,則樣式適用於每一個樣式。 在CSS3中,您可使用屬性選擇器(或每一個僞類的相一樣式)來解決這個問題,但仍然是一種解決方法。 這一般不會出現,由於您爲每一個僞類選擇顏色,而且默認狀況下存在下劃線只有刪除纔有意義,這使得它與其餘文本相同。 可是你決定把你的連接變粗,這會給你帶來麻煩。
  • Netscape 4可能不支持id功能,但仍然是未知屬性不會形成任何麻煩。 這就是我所說的兼容性。

#4樓

如何將舊瀏覽器的name屬性和id屬性用於新瀏覽器。 將使用這兩個選項,默認狀況下將執行回退方法! 容器


#5樓

爲JavaScript用戶着想: 全部ID都成爲窗口下的全局變量

<h1 id="foo">Foo Title</h1>

剛剛建立了JS全局:

window.foo

window.foo的值將是h1HTMLElement

除非您能夠保證id屬性中使用的全部值都是安全的,不然您可能更喜歡堅持使用name

<h1 name="foo">Foo Title</h1>
相關文章
相關標籤/搜索