* [CODE(HTMLe)[a]] 要素型 (HTML, XHTML 1) [8] [[HTML]] の [DFN[[CODE(HTMLe)[a]] [[要素]]]]は、 [DFN[[[アンカー]]]] ([DFN[[[錨]]]]) を定義します。[[アンカー]]とは、 [[リンク]]の端点 ([[始点]]や[[終点]]) のことです。 元々 [CODE(HTMLe)[a]] [[要素]]は[[始点]]にも[[終点]]にも使えるように定義されましたが、 現在は[[始点]]として使う [WEAK[([[終点]]には [CODE(HTMLa)[[[id]]]] 属性を使う)]] のが普通になっています。 [22] 仕様書: - [[HTML 4]] -- [CSECTION[12.2 The [CODE(HTMLe)[A]] element]] [2] :状態:[[W3C]] [[勧告]] :[[名前空間URI]]:[CODE(URI)@en[[[http://www.w3.org/1999/xhtml]]]] :[[局所名]]:[CODE(HTMLe)@en[a]] ([Q@en[anchor]] ([[錨]]) より) :[[開始タグ]]:必須 :[[終了タグ]]:必須 :[[内容模型]]:[CODE(SGML)@en[(%[[inline]];)* −([CODE(HTMLe)[a]])]] (歴史的変遷 ) :出現できる文脈:[CODE(SGML)@en[%inline]] な文脈 (歴史的変遷 ) :[[属性]]: ,属性名 ,属性値型 ,既定値 ,意味 ,典拠 ,[CODE(HTMLa)[[[accesskey]]]] ,[CODE(SGML)[%[[Character]]]] , , ,[HTML 4] ,[CODE(HTMLa)[[[appl]]]],,,[[Macintosh]] [[creator]],非標準,[[T-Time]] ,[CODE(HTMLa)[[[background]]]],,,背景実行モードで起動,非標準,[[T-Time]] ,[CODE(HTMLa)[[[bgcolor]]]],,,[[背景色]],非標準,[[T-Time]] ,[CODE(HTMLa)[[[caption]]]],[CODE(SGML)[%[[Text]]]],,題,非標準,[[T-Time]] ,[CODE(HTMLa)[[[charset]]]] ,[CODE(SGML)[%[[Charset]]]] , , ,[HTML 4] ,[CODE(HTMLa)[[[charspace]]]],,,[[字間]],非標準,[[T-Time]] ,[CODE(HTMLa)[[[class]]]] , , ,[[級]] ,[HTML4] %[[coreattr]] ,[CODE(HTMLa)[[[cmd]]]],,,[[命令]],非標準,[[T-Time]] ,[CODE(HTMLa)[[[coords]]]] ,[CODE(SGML)[%[[Coords]]]] , , ,[HTML 4] ,[CODE(HTMLa)[[[dir]]]] , , ,[[書字方向]] ,[HTML4] %[[i18n]] ,[CODE(HTMLa)[[[directkey]]]],,,,非標準 ,[CODE(HTMLa)[[[entireword]]]],,,完全一致・部分一致,非標準,[[T-Time]] ,[CODE(HTMLa)[[[exe]]]],[[ファイル名]],,[[Windows]] [[実行可能ファイル]],非標準,[[T-Time]] ,[CODE(HTMLa)[[[href]]]] ,[CODE(SGML)[%[[URI]]]] , ,終点 ,[HTML 4] ,[CODE(HTMLa)[[[hreflang]]]] ,[CODE(SGML)[%[[LanguageCode]]]] , , ,[HTML 4] ,[CODE(HTMLa)[[[id]]]] , , ,一意識別子 ,[HTML4] %coreattr ,[CODE(HTMLa)[[[indexstring]]]] , ,(なし) ,索引項目群 ,[[NC4]] ,[CODE(HTMLa)[[[key]]]],,,[[鍵語]],非標準,[[T-Time]] ,[CODE(HTMLa)[[[lang]]]] , , ,[[自然言語]] ,[HTML4] %i18n ,[CODE(HTMLa)[[[xml]]:lang]] , , ,自然言語 ,[XHTML1] ,[CODE(HTMLa)[[[linkcolor]]]],,,リンク色,非標準,[[T-Time]] ,[CODE(HTMLa)[[[linespace]]]],,,[[行間]],非標準,[[T-Time]] ,[CODE(HTMLa)[[[name]]]] , , ,終点アンカー名 ,[HTML 4] ,[CODE(HTMLa)[[[newwindow]]]],([[真偽値属性]]),([[偽]]),新窓で開く,"非標準, 非推奨 → [CODE(HTMLa)[[[target]]]]",[[T-Time]] ,[CODE(HTMLa)[[[onblur]]]] , , , ,[HTML 4] ,[CODE(HTMLa)[[[onclick]]]] , , , ,[HTML4] %[[events]] ,[CODE(HTMLa)[[[ondblclick]]]] , , , ,[HTML4] %events ,[CODE(HTMLa)[[[onfocus]]]] , , , ,[HTML 4] ,[CODE(HTMLa)[[[onkeydown]]]] , , , ,[HTML4] %events ,[CODE(HTMLa)[[[onkeypress]]]] , , , ,[HTML4] %events ,[CODE(HTMLa)[[[onkeyup]]]] , , , ,[HTML4] %events ,[CODE(HTMLa)[[[onmousedown]]]] , , , ,[HTML4] %events ,[CODE(HTMLa)[[[onmousemove]]]] , , , ,[HTML4] %events ,[CODE(HTMLa)[[[onmouseout]]]] , , , ,[HTML4] %events ,[CODE(HTMLa)[[[onmouseover]]]] , , , ,[HTML4] %events ,[CODE(HTMLa)[[[onmouseup]]]] , , , ,[HTML4] %events ,[CODE(HTMLa)[[[onto]]]],,,,非標準 ,[CODE(HTMLa)[[[pointercolor]]]],,,現在頁指示子色,非標準,[[T-Time]] ,[CODE(HTMLa)[[[prop]]]],,,[[特性]]適用対象,非標準,[[T-Time]] ,[CODE(HTMLa)[[[rel]]]] ,[CODE(SGML)[%[[LinkTypes]]]] , ,関係 (順) ,[HTML 4] ,[CODE(HTMLa)[[[rev]]]] ,[CODE(SGML)[%[[LinkTypes]]]] , ,関係 (逆) ,[HTML 4] ,[CODE(HTMLa)[[[shadowcolor]]]],,,[[影]]の[[色]],非標準,[[T-Time]] ,[CODE(HTMLa)[[[shake]]]],,,揺れ表示,非標準,[[T-Time]] ,[CODE(HTMLa)[[[shape]]]] ,[CODE(SGML)[%[[Shape]]]] ,[CODE(HTML)[[[rect]]]] , ,[HTML 4] ,[CODE(HTMLa)[[[style]]]] , , ,スタイル情報 ,[HTML4] %coreattr ,[CODE(HTMLa)[[[subpointercolor]]]],,,前頁指示子色,非標準,[[T-Time]] ,[CODE(HTMLa)[[[tabindex]]]] ,[CODE(SGML)[[[NUMBER]]]] , , ,[HTML 4] ,[CODE(HTMLa)[[[target]]]] , , , ,[HTML 4] 非推奨 ,[CODE(HTMLa)[[[textcolor]]]],,,[[文字色]],非標準,[[T-Time]] ,[CODE(HTMLa)[[[title]]]] , , ,注釈的題・連結の性質 ,[HTML4] %coreattr ,[CODE(HTMLa)[[[tocstring]]]] , ,(なし) ,目次での標示 ,NC4 ,[CODE(HTMLa)[[[type]]]] ,[CODE(SGML)[%[[ContentType]]]] , , ,[HTML 4] ,[CODE(XMLa)[[[xmlns]]]],[CODE(URI)[[[http://www.w3.org/1999/xhtml]]]],==,[[名前空間名]],[[W3C]] [[勧告]],[XHTML 1] ,[CODE(HTMLa)[[[xsize]]]],,,[[文字]]の大きさ,非標準,[[T-Time]] [11] [CODE(HTMLe)[a]] 要素はアンカーを定義します。 [CODE(HTMLa)[name]] 属性や [CODE(HTMLa)[id]] 属性を使うと、 終点アンカーにすることができます。 [CODE(HTMLa)[href]] 属性を使うと、始点アンカーにすることができます。 この3つの属性は、1つも使わなくても構いませんし、3つとも使っても構いません。 [[#comment]] ** 内容模型 [1] [CODE(HTML)[a]] 要素の子孫要素に [CODE(HTML)[a]] 要素は存在できません [SRC[XHTML 1.0]]。 [2] つまり、[CODE(HTML)[a]] 要素の入れ子は禁止されています。なのにした場合の挙動は未定義ですが、可能性としては - [3] 両方とも「意図したように」扱う。内側の [CODE(HTML)[a]] 要素の部分はリンク先が外側と違う、みたいな。 - [4] 外側の [CODE(HTML)[a]] 要素を無視する。 - [5] 内側の [CODE(HTML)[a]] 要素を無視する。 - [6] 外側の [CODE(HTML)[a]] 要素を、内側の [CODE(HTML)[a]] 要素の[[開始タグ]]直前で閉じる。 辺りがあるでしょう。 [7] [[WinIE 6.0]] の動作は >>4 です。 [20] [CODE(HTMLe)[a]] を入れ子にすることはできません。 仕様書: - [[HTML 4]] 12.2.2 Nested links are illegal - [[XHTML 1.0]] [[#comment]] ** レンダリング [14] HTML 4 仕様書の触れるレンダリング例: - 始点アンカー -- 下線を引く -- 色反転させる -- 既読かどうかでレンダリング方法を変える -- 活性化 (マウスで[[かちっ]], 鍵盤や音声で指示など) すると終点資源を取出す (設定によってはそれを表示する) - 終点アンカー -- 特別にレンダリング方法を変えることはしないのが普通 [21] [CODE(HTMLe)[a]] 要素によって定義されたリンクを[DFN[[[活性化]]]]すると、 UA は通常リンクをたどります [SRC[HTML 4 17.11.2]]。 [[#comment]] ** 不思議解釈 [9] 今更不思議マーク付けの説明なんて読んでも驚きはしないと 思っていたのですが、 [SAMP(HTML)[]] で[Q[閉じタグ]] [SAMP[]] は無いのが普通とかいうのを読んで驚いてしまいました:-) [23] > 裏技大公開 >title属性を使って説明をいれることが簡単にできるようになります。 HTMLの話をするとtitle要素というものもありますが、 これとは別にtitle属性というものもあり、共通の属性ということで どの要素でも持っている属性です。 どの要素でもと言いながら、なぜ [CODE(HTMLe)[[[a]]]] 要素型を使っているのか。 そしてなぜ空の[[素片識別子]]の[[同文書参照]]への[[リンク]]としているのか。 不思議マークアッパーの行動はまさに不思議。 出典: [CITE[マウスを重ねたときに説明をつける - Webデザインの教科書 :: オシャレチップス]] (2005年4月付け、2005年4月現在) [24] 歴史的にはともかく、 [CODE(HTMLe)[[[a]]]] の中に入れることができるのは[[行内要素]]だけです。 にもかかわらず、 [CODE(HTMLe)[[[li]]]] とかを入れられるという解説が未だに後を絶ちません・・・。 リスト項目をリンクにしたいと思うのはもっともですが、 できないものはできないのでしてね・・・。 [[#comment]] ** 実装 [17] [CODE(HTMLa)[a]] 要素は (意味的に適切かという問題はあるにせよ、 構文的に) 空にもなり得るので、 UA は空の終点アンカーを探すこともできるべきですが、 そうでない UA もあると HTML 4 仕様書は言っています。 UA によってはうまく機能しない例 [PRE(HTML)[ ...some HTML... Link to empty anchor ]PRE] (HTML 4 仕様書より、改) [[#comment]] ** 例 [12] 単純な始点アンカーの例 [PRE(HTML)[ For more information about W3C, please consult the W3C Web site. ]PRE] (HTML 4 仕様書より) レンダリング例: [PRE[ For more information about W3C, please consult the W3C Web site. ~~~~~~~~~~~~ ]PRE] [15] [PRE(HTML)[ ...text before the link... For more information, please consult anchor one. ...text after the link... ]PRE] (HTML 4 仕様書より、改) 同じ階層の [SAMP(URI)[one.html]] (>>13) の終点アンカー [SAMP[ANCHOR-ONE]] への連結の例。 [13] 単純な終点アンカーの例 [PRE(HTML)[ ...text before the anchor... This is the location of anchor one. ...text after the anchor... ]PRE] (HTML 4 仕様書より、改) [16] 始点アンカーかつ終点アンカーな例 [PRE(HTML)[ I just returned from vacation! Here's a photo of my family at the lake.. ]PRE] (HTML 4 仕様書より、改) [18] 目次の例 [PRE(HTML)[

Table of Contents

Introduction
Some background
On a more personal note
...the rest of the table of contents... ...the document body...

Introduction

...section 1...

Some background

...section 2...

On a more personal note

...section 2.1... ]PRE] [19] >>18 を [CODE(HTMLa)[id]] に書き換えた例 [PRE(HTML)[

Table of Contents

Introduction
Some background
On a more personal note
...the rest of the table of contents... ...the document body...

Introduction

...section 1...

Some background

...section 2...

On a more personal note

...section 2.1... ]PRE] (HTML 4 仕様書より) [[#comment]] ** メモ [[#comment]] * メモ