* [CODE(HTMLe)[link]] 要素 (HTML, XHTML 1) [6] [CODE(HTMLe)[link]] 要素は、当該 [[HTML]] 文書そのものを[[始点アンカー]]とする[[ハイパーリンク]]を記述するための[[要素]]です。 [20] 仕様書: - [DEL[[[HTML 2.0]]: [[RFC 1866]] ([[IETF]] [[提案標準]])]] ([[RFC 2854]] により廃止) -- [CSECTION@en[5.2.4. Link: LINK]] - [[HTML 4]] -- ''Links in HTML documents'' --- 12.3 Document relationships: the LINK element [21] :状態:[[W3C]] [[勧告]] :[[名前空間URI]]:[CODE(URI)@en[[[http://www.w3.org/1999/xhtml]]]] :[[局所名]]:[CODE(HTMLe)@en[link]] ([Q@en[link]] ([[リンク]]) より) :[[開始タグ]]:必須 :[[終了タグ]]:禁止 (HTML 4), 必須 (XHTML 1) :[[内容模型]]:[CODE(SGML)[[[EMPTY]]]] ([[強制空要素]]型) :出現できる文脈:[CODE(HTMLe)[[[head]]]] 要素内、任意個 :[[属性]]: ,属性名 ,属性値 ,既定値 ,説明 ,状態 ,出典 ,[CODE(HTMLa)[[[charset]]]] ,[CODE(SGML)[%[[Charset]]]] ,(なし) ,リンク先 charset のヒント ,[HTML 4] ,[CODE(HTMLa)[[[class]]]] , ,(なし) ,[[級]] ,[HTML 4] [CODE(SGML)[%[[coreattrs]]]] ,[CODE(HTMLa)[[[id]]]] ,[CODE(SGML)[[[ID]]]] ,(なし) ,一意識別子 ,[HTML 4] [CODE(SGML)[%coreattrs]] ,[CODE(HTMLa)[[[dir]]]] , ,(継承) ,[[書字方向]] ,[HTML 4] [CODE(SGML)[%[[i18n]]]] ,[CODE(HTMLa)[[[href]]]] ,[CODE(SGML)[%[[URI]]]] ,(なし) ,終点アンカー URI 参照 ,[HTML 4] ,[CODE(HTMLa)[[[hreflang]]]] ,[CODE(SGML)[%[[LanguageCode]]]] ,(なし) ,リンク先言語のヒント ,[HTML 4] ,[CODE(HTMLa)[[[lang]]]] ,[CODE(SGML)[%LanguageCode]] ,(継承) ,自然言語 ,[HTML 4] [CODE(SGML)[%i18n]] ,[CODE(HTMLa)[[[xml]]:lang]] ,[CODE(SGML)[%LanguageCode]] ,(継承) ,自然言語 ,[XHTML 1] ,[CODE(HTMLa)[[[media]]]] ,[CODE(SGML)[%[[MediaDesc]]]] , , ,[HTML 4] ,[CODE(HTMLa)[[[methods]]]] , , , ,[CODE(HTMLa)[[[onclick]]]] ,[CODE(SGML)[%[[Script]]]] ,(なし) , ,[HTML 4] [CODE(SGML)[%[[events]]]] ,[CODE(HTMLa)[[[ondblclick]]]] ,[CODE(SGML)[%Script]] ,(なし) , ,[HTML 4] [CODE(SGML)[%events]] ,[CODE(HTMLa)[[[onkeydown]]]] ,[CODE(SGML)[%Script]] ,(なし) , ,[HTML 4] [CODE(SGML)[%events]] ,[CODE(HTMLa)[[[onkeypress]]]] ,[CODE(SGML)[%Script]] ,(なし) , ,[HTML 4] [CODE(SGML)[%events]] ,[CODE(HTMLa)[[[onkeyup]]]] ,[CODE(SGML)[%Script]] ,(なし) , ,[HTML 4] [CODE(SGML)[%events]] ,[CODE(HTMLa)[[[onmousedown]]]] ,[CODE(SGML)[%Script]] ,(なし) , ,[HTML 4] [CODE(SGML)[%events]] ,[CODE(HTMLa)[[[onmousemove]]]] ,[CODE(SGML)[%Script]] ,(なし) , ,[HTML 4] [CODE(SGML)[%events]] ,[CODE(HTMLa)[[[onmouseover]]]] ,[CODE(SGML)[%Script]] ,(なし) , ,[HTML 4] [CODE(SGML)[%events]] ,[CODE(HTMLa)[[[onmouseup]]]] ,[CODE(SGML)[%Script]] ,(なし) , ,[HTML 4] [CODE(SGML)[%events]] ,[CODE(HTMLa)[[[onmouseout]]]] ,[CODE(SGML)[%Script]] ,(なし) , ,[HTML 4] [CODE(SGML)[%events]] ,[CODE(HTMLa)[[[rel]]]] ,[CODE(SGML)[%[[LinkTypes]]]] , ,関係(順) ,[HTML 4] ,[CODE(HTMLa)[[[rev]]]] ,[CODE(SGML)[%LinkTypes]] , ,関係(逆) ,[HTML 4] ,[CODE(HTMLa)[[[style]]]] ,[CODE(SGML)[%[[StyleSheet]]]] ,(なし) ,様式 ,[HTML 4] [CODE(SGML)[%coreattrs]] ,[CODE(HTMLa)[[[target]]]] ,[CODE(SGML)[%[[FrameTarget]]]] , , ,[HTML 4] 非推奨 ,[CODE(HTMLa)[[[title]]]] ,[CODE(SGML)[%[[Text]]]] ,(なし) , ,[HTML 4] [CODE(SGML)[%coreattrs]] ,[CODE(HTMLa)[[[type]]]] ,[CODE(SGML)[%[[ContentType]]]] ,(なし) ,リンク先媒体型のヒント ,[HTML 4] ,[CODE(HTMLa)[[[urn]]]] ,[CODE(XMLa)[[[xmlns]]]] ,[CODE(URI)[[[http://www.w3.org/1999/xhtml]]]] 固定 ,== ,[[名前空間名]] ,W3C 勧告 ,[[XHTML m12n]] [1] [[HTML 4]] では必須属性なしなんですけど、本当にそれでいいのでしょうか? 多分 [CODE(HTMLa)[[[href]]]] 属性は必須でしょう。 [4] [CODE(HTMLa)[[[lang]]]] 属性も [CODE(HTMLa)[[[dir]]]] 属性も対象は [CODE(HTMLa)[[[title]]]] 属性だけのようです。 [5] こんな要素にまで [CODE(HTMLa)[onmouse[VAR[*]]]] / [CODE(HTMLa)[onkey[VAR[*]]]] 属性があるなんて、徹底してますね。 [30] 普通[[著者]]、関係する[[索引]]・[[用語集]]、 古い版や新しい版、 文書階層、[[スタイル・シート]]など関連付ける資源、 その他を示すために使います。 [SRC[RFC 1866 5.2.4]] [[#comment]] ** 応用 [22] レンダリング例: - リンクの drop‐down メニューがついてる工具棒 [SRC[HTML 4]] - 文書群を印刷するときの基本材料 [SRC[HTML 4]] - 常時表示メニューや文脈メニューの一部として - 文書本文領域の最初や最後の部分として [[#comment]] *** 検索円陣 [24] [[検索円陣]]に対しては、特に次のようなものへの [CODE(HTMLe)[link]] が有用です。 [SRC[HTML 4]] - 文書の他の言語で書かれた版 - 文書の他の媒体向け (例: 印刷用) に書かれた版 - 文書群の開始頁 [39] 45949 (222 [WEAK[2006-01-05 04:44:56 +00:00]]) [[#comment]] ** 実装 [7] 大昔から定義されている要素型であるにもかかわらず、 長らく [[Lynx]] などの一部[[WWWブラウザ]]等しか実装しない瀕死状態でしたが、 [[外部スタイル・シート]]の指定に使われたことで一躍有名となり、 意味マーク付けへの回帰の流れの中で再び注目されるようになりました。 現在では [[Mozilla]] や [[Opera]] のような有名な WWW ブラウザも目立つ形で実装し、 [[IE]] でも利用可能にする拡張 tool が幾つも公開され、同時に [[HTML]] 文書に [CODE(HTMLe)[link]] 要素を明記する流れが広まっています。 [17] [[NCSA Mosaic]] 3.0 とか [[iCab]] とか、 昔から実装はあったことはあったのだけど。。。 [8] [CODE(HTML)[link]] 要素型を使って前後の文書などの関係を明記し、 Web ブラウザの [[UI]] を通して利用可能となることで、 Web browsing の効率は著しく向上します。 [16] >>7 多くの解説書に[Q[表示されないから意味が無い]] とまで切り捨てられたからなあ。悲惨だよね。 [9] ''Bug 2800 - No UI for HTML2 "LINK" element'' : [[Mozilla]] での [CODE(HTMLe)[link]] 要素の実装について。 [15] [[Excel]] (少なくても Excel 10) は、 [SAMP(HTML)[]] とか [SAMP(HTML)[]] とかを一つの文書内に一杯出力します。 [CODE(HTMLa)[id]] と [CODE(HTMLa)[rel]] をまちがえているとしかおもえません(w [40] [[libwww]]の[[HTML]][[構文解析器]]は1996年7月20日のRelease 4.1b3で[CODE(HTMLe)@en[[[link]]]]を実装しました。 ([[名無しさん]] [sgea]) [43] [CITE[link要素とCSSのみでナビゲーションを作る]] [[Gecko]] は [CODE(HTMLe)@en[[[link]]]] を [CODE(HTMLe)@en[[[a]]]] と同じように[[リンク]]として[[レンダリング]]する。 ([[名無しさん]] [WEAK[2006-08-23 00:15:14 +00:00]]) [[#comment]] *** [CODE(HTMLe)[link]] 要素によるスタイル・シートの実装 [33] :[[Trident]] ([[WinIE]]): :[[Classic Mozilla]]: :[[Tasman]] ([[MacIE]]): :[[iCab]]: :[[Gecko]] ([[Mozilla Suite]], [[Firefox]] など): :[[Opera]]: :[[KHTML]] ([[Safari]] など): その他枚挙に暇がありません。 [[#comment]] *** [CODE(HTMLe)[link]] 要素によるナビゲーションの実装 [32] :[[Lynx]]:かなり以前から実装。 画面例: , :[[NCSA Mosaic]]:[[NCSA Mosaic]] 3.0 以降で実装。 画面例: :[[iCab]]: 画面例: , :[[emacs-w3m]]: 2001年8月に実装されました。 [emacs-w3m:01393] :[[Mozilla Suite]]: [[Mozilla]] 0.9.5 ''以上'' 1.0 ''未満''と 1.1 ''以上''で [[Site Navigation Bar]] として実装。 (>>9) 画面例: , , :[[Opera]]:[[Opera]] 7 以降で実装。 画面例: :[[Mozilla Firefox]] [[Link Toolbar]]: [[拡張]]機能として用意されています。 [CODE(HTMLe)[[[link]]]] 要素に限らず、 [CODE(HTMLe)[[[a]]]] 要素や [[URI]] による推測も含めてナビゲーションを提供します。 画面例: この他 [[WinIE]] 用の拡張、 [[Mozilla]] 系ブラウザ用の拡張、 [[Gecko]] や [[Trident]] を使った独自ブラウザなど、 細かいものも入れればきりがありません。 [[#comment]] *** [CODE(HTMLe)[link]] 要素による favicon の実装 [34] → [CODE(file)[[[favicon.ico]]]] ** 不思議解釈 [35] [[Stricter]] 系過激派の中には、[[ナビゲーション]]的な記述が [CODE(HTMLe)@en[[[body]]]] 内に含まれるのは好ましくなく、 すべて [CODE(HTMLe)@en[[[link]]]] 要素を使って記述されるべきだと考える人もいます。 [36] ながくあってないもの状態の時代が続いたので、 未だに[Q[多くのブラウザが対応していない]]などと嘘を平気で言う人がよくいます。 ([[名無しさん]] [sage] [WEAK[2005-12-13 11:13:11 +00:00]]) [[#comment]] ** 例 [23] [PRE(HTML)[ Chapter 2 ...the rest of the document... ]PRE] [WEAK[(HTML 4 仕様書より)]] [25] 色々な言語の版へのリンクの例 [PRE(HTML)[ The manual in English ]PRE] [WEAK[(HTML 4 仕様書より、改)]] [26] 印刷版へのリンクの例 [PRE(HTML)[ Reference manual ]PRE] [WEAK[(HTML 4 仕様書より、改)]] [27] 文書群の最初の文書へのリンクの例 [PRE(HTML)[ Reference manual -- Page 5 ]PRE] [WEAK[(HTML 4 仕様書より、改)]] [[#comment]] ** 他との関係 [28] [[HTTP]] には [CODE(HTTP)[[[Link]]:]] (古くは [CODE(HTTP)[[[WWW-Link]]:]] とも) という[[実体頭欄]]があります。 [CODE(HTTP)[Link]] は [CODE(HTMLe)[link]] の弟にあたります。 HTML 4 12.4.1 Resolving relative URIs の注には、 [CODE(HTTP)[Link]] を [CODE(HTMLe)[link]] と同じように扱うと書いてあります。 (が、[[基底URI]] の話なので、基底 URI 限定のメモかもしれません。) [[#comment]] ** メモ [10] HTML 4 でも [CODE(HTMLa)[[[accesskey]]]] 属性は無いんだね。 [11] >>10 文書が個々に指定するよりブラウザの [[UA]] で [CODE(HTMLa)[[[rel]]]] / [CODE(HTMLa)[[[rev]]]] ごとに決まってた方がいい。 [CODE(HTML)[[CODE(HTMLa)[rel]]=[[prev]]]] == [KBD[←]] とか。 [19] ''Subotnik: Das 'link'-Element in (X)HTML'' (ドイツ語): [CODE(HTMLa)[link]] 要素についてのありとあらゆる情報のリンク集。 (ドイツ語が読めなくてもリンク集なので大丈夫です。) [31] [CITE[linkのススメ - 駄的HTML改善計画]] [42] [[Link Toolbar]] とかで [[URI]] の[[コピー]]ができないのが不便・・・。 ([[名無しさん]] [WEAK[2006-06-21 23:04:45 +00:00]]) [[#comment]] * メモ [18] [WEAK[2003-08-30 23:52:46 +00:00]] ''[[名無しさん]]'': なぜかこの WikiPage が で20位、 及び で1位ですよ。なんでやねん。 [37] [CITE[DPML Transit Link Protocol]] (2006年1月1日付[[URI scheme]]仕様書) ([[名無しさん]] [sage]) [38] 例 [SRC[>>37]]: [CODE(URI example)@en[link:module:dpml/metro/dpml-metro]] ([[名無しさん]] [sage]) [41] : [PRE(CSS example code)[ [CODE(HTMLe)@en[[[a]]]]'''['''[CODE(HTMLa)@en[[[href]]]]''']''' { [[link]]: [CODE(HTMLa)@en[[[href]]]] } ]PRE] ([[名無しさん]] [sage])