Hop step XHTML―ホップ ステップ XHTML

Section 12:ハイパーテキストモジュール(1)

 ハイパーリンクは,WWW ページには不可欠な機構である。これを実現するのがハイパーテキストモジュール,つまり,a 要素である。

ハイパーリンク:a 要素

 まずは,a 要素の概説からはじめよう。a 要素はインライン要素で,テキストおよびインライン要素を内容とする。ただし,内容にa 要素が含まれてはいけない(入れ子の禁止)。

内容モデル
(#PCDATA | br | span | em | strong | dfn | code | samp | kbd | var | cite | abbr | acronym | q | tt | i | b | big | small | sub | sup | bdo | img | map | object | input | select | textarea | label | button | ruby | ins | del | script | noscript)*
a 要素を除くインライン要素
a 要素の属性
属性名属性値備考
コア属性
style 属性
国際化に関する属性
イベント属性
hrefURI参照先の URI
charset文字エンコーディング参照先の URI のリソースの文字エンコーディング
typeメディアタイプ参照先の URI のリソースのメディアタイプ
hreflang言語コード参照先の URI のリソースが何語で書かれているかを与える
rel関係その文書から見た,参照先の URI のリソースの関係
rev関係参照先の URI のリソースから見た,その文書の関係
accesskeyアクセスキーそのハイパーリンクのホットスポットへのアクセスキー
tabindex数値(整数)そのハイパーリンクのホットスポットへのタブインデックス
shapeキーワードクライアントサイドイメージマップで,href 属性に対応付ける領域の形状;既定値は“rect
coords数値(複数)クライアントサイドイメージマップで,href 属性に対応付ける領域の座標
onfocusスクリプトその要素がフォーカスを得たとき実行されるスクリプト
onblurスクリプトその要素がフォーカスを失ったとき実行されるスクリプト

 上記の属性のうち,shape 属性(キーワードは rectcirclepolydefault)および coords 属性については,クライアントサイドイメージマップの項で述べることにする。また,onfocus および onblur 属性についてはスクリプトの項で述べることにする

ハイパーリンクの基本

 a 要素のもっとも重要で頻繁に利用する役割は,他の文書を参照すること(ハイパーリンク)である。a 要素は(原則)テキストおよびインライン要素を含んで,それに対して href 属性に指定された URI へのハイパーリンクを張る。

 URI の指定に関しては,Let's begin XHTML の Appendix C でも解説しているように,

  • 絶対指定(たとえば,http://... と書いていく)
  • 相対指定(ある URI(base 要素で指定しない限り,現在の URI)を基準に指定する)

がある。ここで,“../”は“ひとつ上の階層(ディレクトリ)”,“./”は“現在の階層(ディレクトリ)”を示すことを復習されたい。

特定の要素(文書の途中)へのリンク

 ハイパーリンク先に,特定の要素を指定することができる。この場合,ハイパーリンク先の要素には id 属性が指定されていなければならない。この id 属性の値で要素を区別し,ハイパーリンクの到達先とする。このとき,その id 属性の値の前に半角ハッシュ記号「#」をつける。このとき,href 属性は,“URI#ID”のように与える。参照先が特に同じ文書である場合は,URI は空とし,“#ID”のみでよい。

 たとえば,同じ文書内の ID が“Section02”へのリンクは,

<p><a href="#Section02">第 2 節</a>では,絶対値記号を含む最大最小問題について解説する。</p>

と記述できる。また,同じディレクトリのファイル“chapter3.html”中の,ID が“Section03”である要素へのリンクは,

<p><a href="chapter3.htm#Section03">3.3</a> では,三角関数も絡めた最大最小問題を扱っていく。</p>

と書くことになる。id 属性の項も復習されたい。

 XHTML 1.1 では,要素の固有の名前を与えるのに使用していた name 属性がなくなっているので,リンク先として要素を指し示す場合は id 属性の値を使用することに注意しなければならない。

リンク先についての補足情報

 リンクを張るときに,リンク先の情報を前もって示すことができる。これらの補助情報を,必要なときに入れていくとよいだろう。

 charset 属性は,リンク先の文書の文字エンコーディングを示しておくのに用いる。文字エンコーディングは,XML 宣言に書くものと同様で,“ISO-2022-JP”(JIS),“EUC-JP”(日本語 EUC),“Shift_JIS”(シフト JIS)などがあった。

 type 属性には,リンク先のリソース(ファイル)のメディアタイプを与えることができる。たとえば,テキストファイルは“text/plain”,GIF ファイルは“image/gif”,XHTML ファイルは“application/xhtml+xml”,PDF ファイルは“application/pdf”などである。そのほかにも多くのメディアタイプがあって,これらについては Appendix B にまとめておく。

 たとえば,PDF ファイルへリンクするときは,次のように記述するとよいだろう。

<p> <a href="mathtext.pdf" type="application/pdf">夏期講習テキスト(PDF)</a>を事前にダウンロード・印刷しておいてください。</p>

 hreflang 属性には,リンク先のリソース(ファイル)が何語で書かれているかを,xml:lang 属性と同様にして与える。たとえば,

<p> 数学に関する学会のひとつに<a href="http://www.ams.org/" hreflang="en">アメリカ数学学会(AMS)</a>がある。</p>

では,リンク先(http://www.ams.org/)が英語で書かれていることを示している。

 当然ながら,これらのリンクに関する付加情報は,同時に与えても構わない。