2012-05-19 58 views
0

HTML可以使用「#name」鏈接將用戶定向到指定的錨元素,如<a name="name">。是否有可能鏈接到任何其他屬性,如id或類? HTML5的東西如'itemprop'或'content'如何?#鏈接到非名稱元素

回答

2

是的,事實上,最好使用元素的id在頁面內創建內部鏈接。

實施例的標記:

<a href="#part2">Part 2</a> 

<!-- other html --> 

<h2 id="part2">This is part 2</h2> 

JS Fiddle demo

這是值得注意的是,鏈接可以連接到僅一個,獨特,目標,因此一個class(或其它屬性)不能被用作所有非id屬性可被共享/跨許多元件複製。而id必須在文檔中是唯一的。

1

您可以使用元素的名稱和ID。原因是URL中的散列必須指向頁面上的單個元素,並且只有name和id是必須具有唯一值的屬性。

1

根據http://dev.w3.org/html5/spec/single-page.html#scroll-to-fragid

對於HTML文檔(和HTML MIME類型),以下處理 模型必須遵循確定 文件中指定部分是什麼。

  1. 解析URL,並讓fragid成爲URL的組成部分。

  2. 如果fragid是空字符串,則文檔 的指示部分是文檔的頂部;在這裏停止算法。

  3. 令解碼fragid是作爲由UTF-8所定義的有效UTF-8序列導入 Unicode字符擴大fragid的 百分比編碼八位位組的任何序列的結果。如果該字符串中的任何百分比編碼字節 不是有效的UTF-8序列(例如,它們擴展到 替代碼點),則跳過此步驟和下一個。

  4. 如果此步驟不是跳過並且在的DOM中的元素 具有ID正好等於解碼fragid,然後按照樹順序第一個這樣的元件 是文檔的所指示的部分;這裏停止 算法。

  5. 如果有一個是在DOM中的元件具有name屬性其 值正好等於fragid(未解碼fragid),則在樹順序中的第一 這種元素是所指示的部分文件;在此停止 算法。

  6. 如果fragid是字符串頂部的ASCII區分大小寫匹配,則 文檔的指示部分是文檔的頂部;在此停止 算法。

  7. 否則,文檔中沒有指定的部分。

對於HTML與選擇器的相互作用的用途:目標 僞類,目標元件是 文檔的所指示的部分,如果是這樣的元件;否則就沒有目標元素。