#?SuikaWiki/0.9 page-icon="HTML" default-name="匿名アンカー" [1] [[HTML]] における[[終点アンカー]]名について。 *アンカー名をつける方法 [2] HTML で特定の部分を終点アンカーとして名前をつけるには 2つの方法があります。 -[[a]] 要素の [[name]] 属性を使う方法 -[[id]] 属性を使う方法 [3] [CODE(HTML)[NAME]] 属性を使う方法は古くから使われてきました。 古い [[UA]] はこちらの方法しか対応していません。 終点アンカーを [CODE(HTML)[A]] 要素として[[マーク付け]]し、 更にその要素の [CODE(HTML)[NAME]] 属性で名前を指定します。 例: anchor text [4] もう一つの [CODE(HTML)[ID]] 属性を使う方法は、 任意の要素を終点アンカーとするにあたって、 その名前を [CODE(HTML)[ID]] 属性の値とします。 ([CODE(HTML)[ID]] 属性の役割は終点アンカー名の指定だけではありません。 詳しくは [[id]] 属性の説明を参照。) この方法は比較的新しいもので、つい最近まで互換性に難あり、 [CODE(HTML)[NAME]] 属性と併用するのが望ましい、 とされてきました。現在ではほとんどの [[UA]] が対応しており、単独で用いても問題ないでしょう。 例:
Paragraph text
[[#comment]] *アンカー名の文字列 [5] アンカー名には使える文字に制限があります。 [CODE(HTML)[NAME]] 属性にはほとんどの文字が使えますが、 [CODE(HTML)[ID]] 属性では制限があります。 まず、 SGML ([[DTD]]) 的にみると、 [[HTML4]] では [CODE(HTML)[NAME]] は [CODE(SGML)[CDATA]], [CODE(HTML)[ID]] は [CODE(SGML)[ID]] とされています。 歴史的には、 [CODE(HTML)[NAME]] 属性も [[SGML]] の [[ID]] か [[NMTOKEN]] くらいにしたかったようなのですが、 広まってしまった実装と用例のために現状追認せざるを得なかったようです。 [CODE(SGML)[CDATA]] である [CODE(HTML)[NAME]] では、 [[文書文字集合]]に存在する全ての文字が使えます。 ([[HTML2.0]] と [[HTML3.0]] draft では [[ISO/IEC8859]]-1, [[HTML2.x]] と [[HTML4]] と [[XHTML]] では [[ISO/IEC10646]] の [CODE[U+10FFFF]] 以下の文字。 明示 [[SGML宣言]]のない [[HTML]] ([[不思議マーク付け]]文書を含む。) では文書の[[符号化文字集合]]で表現可能な全ての文字。) 引用符で囲んで記述する時には[[実体参照]]を使って表現することもできます。 例: anchor text 一方、 [CODE(SGML)[ID]] である [CODE(HTML)[ID]] では、最初の文字は[[名前開始文字]], それ以降の文字は[[名前文字]]から選ぶ必要があります。 また、実体参照で表現することは出来ません。 [8] さて、