仕様

A要素は、
href属性がある場合、
その内容でラベル付けされた
ハイパーリンク
(ハイパーテキストアンカー)を
表します。

aアンカー (anchor)
カテゴリ
  • フレージングコンテンツ
  • フローコンテンツ
  • パルパブルコンテンツ
href属性がある場合、インタラクティブコンテンツ
種類通常要素
この要素を
使用できる
状態
フレージングコンテンツを受け入れる要素。
許可されて
いる内容
透過的コンテンツですが、インタラクティブコンテンツの子孫、a要素の子孫、またはtabindex属性が指定された子孫があってはなりません。
属性グローバル属性,
href
マーカーの種類
target
マーカーの種類
rel
マーカーの種類
type
マーカーの種類
hreflang
マーカーの種類
referrerpolicy
マーカーの種類
ping
マーカーの種類
download
リストが降順
text / html
での
タグの省略
省略できません。
許可されて
いるARIA
button, checkbox, menuitem, menuitemcheckbox, menuitemradio, option, radio, switch, tab, treeitem.
[既定値 : link (href 属性がある場合)]
DOM
インター
フェイス
HTMLAnchorElement
レンダリング
フレージングコンテンツ
参加
コンテキスト
インラインフォーマットコンテキスト
確立
コンテキスト
インラインフォーマットコンテキスト(透過的なコンテンツモデル)
a要素は、アンカー(anchor) を表します。

a要素にhref属性がある場合、その内容でラベル付けされたハイパーリンク(ハイパーテキストアンカー)を表します。 a要素にhref属性がない場合、要素は、要素のコンテンツのみで構成される、関連性があった場合にリンクが配置された可能性のある場所のプレースホルダーを表します。

  1. <div>
  2. <a href="./index.htm"><p>トップページ</p></a>
  3. </div>
参照元
  1. HTML Living Standard. 4.5.1 The a element
  2. HTML Living Standard. 15 Rendering 15.3.4 Phrasing content
  3. HTML 5.2 W3C 勧告. 4.5.1 The a element
  4. HTML 4.01 Specification W3C 勧告. 12.2 The A element
  5. MDN Web Docs. HTML <a>: アンカー要素

使用可能な箇所

フレージングコンテンツを
受け入れる要素に
配置できます。

a要素は、フレージングコンテンツを受け入れる要素で配置できます。ただし祖先の要素を含めて、インタラクティブコンテンツを子孫に持つ事を認めている必要があります。

  1. <pre>
  2. <a href="./index.htm">トップページ</a>
  3. </pre>

フレージングコンテンツを配置できる pre要素のコンテンツの一部として、フレージングコンテンツだけを含む a要素を配置する事ができます。

  1. <button>
  2. <a href="./index.htm">トップページ</a>
  3. </button>
  1. <form>
  2. <button formaction="./index.htm">トップページ</button>
  3. </form>

button要素は子孫にインタラクティブコンテンツを受け付けない要素です。ですので button要素のコンテンツ (内容) の子孫として a要素を配置する事ができません。

a要素と同等の事は、formaction属性でできます。form要素の action属性でも同じです。


配置できるコンテンツ

親要素に
配置できるコンテンツを
配置できます。

透過的コンテンツである a要素は、親要素がフローコンテンツを配置できる時にはフローコンテンツを配置できますし、親要素がフレージングコンテンツを配置できる時にはフレージングコンテンツを配置できます。
そもそも a要素フレージングコンテンツを受け入れる要素にしか配置できないので、親要素はフレージングコンテンツを配置できます。
ただし、インタラクティブコンテンツの子孫、a要素の子孫、またはtabindex属性が指定された子孫があってはなりません。

  1. <pre>
  2. <a href="./index.htm"><span>トップページ</span></a>
  3. </pre>

pre要素はフレージングコンテンツを配置できます。span要素はフレージングコンテンツですので pre要素のコンテンツの一部として フレージングコンテンツだけを含む a要素を配置する事ができます。

トップページ
  1. <div>
  2. <a href="./index.htm"><p>トップページ</p></a>
  3. </div>

div要素はフローコンテンツを配置できます。p要素はフローコンテンツですので div要素のコンテンツの一部として フローコンテンツだけを含む a要素を配置する事ができます。

トップページ

  1. <a href="./index.htm">
  2. <span>
  3. <button>
  4. トップページ
  5. </button>
  6. </span>
  7. </a>
  1. <form>
  2. <button formaction="./index.htm">トップページ</button>
  3. </form>

a要素は子孫にインタラクティブコンテンツを受け付けない要素です。ですので a要素のコンテンツ (内容) の子孫として button要素を配置する事ができません。

button要素で a要素と同等の事は、formaction属性でできます。form要素の action属性でも同じです。


属性

href属性

  1. <a href="./index.htm">トップページ</a>

href属性は、ハイパーリンクのアドレスを指定します。

  1. <a href="#">PAGE TOP</a

属性値として "#" を使用すると、現在のページの先頭にリンクすることができます。

PAGE TOP
  1. <a href="#APM1NEXT">SAME PAGE</a

属性値として "#APM1NEXT" を使用すると、id 属性に "APM1NEXT" を指定された要素にリンクすることができます。

SAME PAGE
  1. <a href="./index.htm">TOP PAGE</a

属性値として "./index.htm" を使用すると、相対url として自身を基準として相対的な宛先にリンクすることができます。
"./" は同じ階層を表し、"../" は1つ上の階層を表します。

TOP PAGE
  1. <a href="http://risyu.in.coocan.jp/">HOME PAGE</a

属性値として "http://risyu.in.coocan.jp/" を使用すると、絶対url としてその宛先にリンクすることができます。

HOME PAGE
  1. <a href="tel:03177">電話発信</a

属性値として "tel:03177" を使用すると、端末の能力によって電話を発信することができます。
例示では 03-177 天気予報(東京)を提示しています。

電話発信

target属性

  1. <a href="./index.htm" target="_blank">新しい枠で<br>トップページ</a>

target属性は、表示する場所を指定します。ハイパーリンクナビゲーションの閲覧コンテキスト名またはキーワードでなければなりません。href属性が存在しない場合は省略する必要があります。

新しい枠で
トップページ

rel属性

  1. <a href="./index.htm" rel="nofollow">トップページ</a>

rel属性は、リンク種別を指定します。ハイパーリンクを含むドキュメント内の場所とリンク先リソースの関係を表します。属性の値は、スペースで区切られた一意のトークンの順不同のセットである必要があります。href属性が存在しない場合は省略する必要があります。


type属性

  1. <a href="./index.htm" type="text/html">トップページ</a>

type属性は、参照されるリソースの MIME タイプの形式を指定します。href属性が存在しない場合は省略する必要があります。


hreflang属性

  1. <a href="./index.htm" hreflang="ja">トップページ</a>

hreflang属性は、リンクされたリソースの言語を指定します。href属性が存在しない場合は省略する必要があります。


referrerpolicy属性

  1. <a href="./index.htm" referrerpolicy="no-referrer-when-downgrade">トップページ</a>

referrerpolicy属性は、リンクをたどるときにどれだけのリファラーを送信するかを指定します。href属性が存在しない場合は省略する必要があります。


ping属性

  1. <a href="./index.htm" ping="./ping.php">トップページ</a>

ping属性は、ユーザーがハイパーリンクをたどった場合に通知を受けることに関心があるリソースのURLを指定します。href属性が存在しない場合は省略する必要があります。


download属性

  1. <a href="./index.htm" download="index.txt">トップページ</a>

download属性は、ナビゲートする代わりにリソースをダウンロードするかどうか、ダウンロードする場合はそのファイル名を指定します。href属性が存在しない場合は省略する必要があります。


気を付ける点

情報の公開

リンクを含めて記述する情報は公開される情報であるという事に留意して下さい。

アクセシビリティ

a 要素のコンテンツ(内容,テキスト)と href 属性の値を一致する様にしましょう。

リンク切れ

リンクした先が実在する必要もあります。リンク先が移転したりファイル名が変わったりするとリンク切れで先に行けません。出来るだけ変わらないアドレスを選ぶか、こまめに確認しましょう。

CSSリセット

  1. a {
  2. background-color: transparent;
  3. }

normalize.css というリセットCSS の一部で、IE 10でアクティブなリンクの灰色の背景を削除します。
a要素の例示は、上記の CSSの効果を効かない指定をしている例です。
詳細は理解していないのですが、いろいろとバグ等の対応も含んでいる様なので、リセットCSSを利用する事をお勧めします。

TOP PAGE

おまけ

CSSを使い、以下の様に例示してみました。
例示でのリンク先はトップページです。

  1. <a href="./index.htm">TOP PAGE</a>

アンカー要素だけの簡素なリンクです。

  1. <form>
  2. <button formaction="./index.htm">TOP PAGE</button>
  3. </form>

アンカー要素の代わりにボタン要素を用いたリンクです。

  1. <a href="./index.htm" class="canSample1d3">TOP PAGE</a>
  1. .canSample1d3{ text-decoration:none; border:0.2em outset #00ffff; background-color:#66ffff;}

下線を消して境界を要素が出っ張る様な線を指定し、境界と背景の色を指定しています。

  1. <a href="./index.htm" class="canSample1d4">TOP PAGE</a>
  1. .canSample1d4{ text-decoration:none;}
  2. .canSample1d4:hover,
  3. .canSample1d4:focus{text-decoration:underline;}

下線を消して、要素の上をホバー(通過)させたときに下線を表す指定をしています。

  1. <a href="./index.htm" class="canSample1d5">TOP PAGE</a>
  1. .canSample1d5{ text-decoration:underline; border:1px outset transparent;}
  2. .canSample1d5:hover,
  3. .canSample1d5:focus{text-decoration:underline; border:1px outset #999999; border-radius:5px;}

境界線を透過で用意して、要素の上をホバー(通過)させたときに境界線を表す指定をしています。

  1. <a href="./index.htm" class="canSample1d6">TOP PAGE</a>
  1. .canSample1d6{ text-decoration:none;}
  2. .canSample1d6:hover,
  3. .canSample1d6:focus{position:relative; top:3px; left:3px;}

要素の上をホバー(通過)させたときに要素の位置をずらしています。