* [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)@en[[[bulletin-date]]]] , , , ,[[満期]] [DEL@en[([[IETF]] [[I-D]])]]
,[CODE(HTMLa)@en[[[bulletin-expires]]]] , , , ,[[満期]] [DEL@en[([[IETF]] [[I-D]])]]
,[CODE(HTMLa)@en[[[bulletin-image]]]] ,[CODE(SGML)@en[%[[URI]];]] , , ,[[満期]] [DEL@en[([[IETF]] [[I-D]])]]
,[CODE(HTMLa)@en[[[bulletin-text]]]] ,[CODE(SGML)@en[%[[Text]];]] , , ,[[満期]] [DEL@en[([[IETF]] [[I-D]])]]
,[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)@en[[[src]]]],,,,非標準
,[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]])
[45]
[CITE@ja[FirefoxでOperaのようなlink要素を表示させる「Mozeraナビ=叢ナビ」 (インターネット帳面)]] ([CODE[2007-02-09 08:54:37 +09:00]] 版)
([[名無しさん]])
[46]
[CITE[link 要素を可視化してみる - double-team.org]] ([CODE[2007-02-08 18:33:35 +09: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]])
[44]
[CITE[我的春秋: link 要素をナビゲーションに利用することの注意点(改訂)]] ([CODE[2007-02-09 08:54:04 +09:00]] 版)
([[名無しさん]] [WEAK[2007-02-09 00:07:14 +00:00]])
[47]
[CITE@ja[パンくずリストがベストとは限らない | WWW WATCH]] ([CODE[2007-02-10 14:54:24 +09:00]] 版)
([[名無しさん]] [WEAK[2007-02-10 05:56:55 +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])
[48]
[CITE[Document specific background and foreground control]] ([CODE[2007-02-26 22:14:03 +09:00]] 版)
([[名無しさん]])
[49]
[CITE[XML.com: Building the Annotated XML Specification]] ([[Tim Bray]] 著, [CODE[2007-03-17 18:34:30 +09:00]] 版)
([[名無しさん]])
[50]
[CITE@en[Re: '''['''XHTML 2''']''' renaming :link to :unvisited]] ([[Bert Bos]] 著, [TIME[2006-09-28 21:34:24 +09:00]] 版)
([[名無しさん]])
[51] [[KML]] は [[Atom]] の [CODE(XMLe)@en[[[link]]]] [[要素]]の使用を認めています。
(ただし [CODE(XMLa)@en[[[rel]]]] [[属性値]]は
[CODE(XML)@en[[[related]]]] に限定されています。)