<a>
紹介
リンク(hyperlink)はインターネットの核となるものです。これにより、ユーザーはあるページから別のページへ、すべてのリソースを相互に接続することができます。
<a>
タグは移動可能なリンクを表します。ページだけでなく、テキストや画像、ファイル、さらには現在のページの位置にまでリンクできます。言い換えれば、インターネット上のすべてのリソースは、<a>
を通じてアクセスできます。
以下は典型的なリンクの例です。
<a href="https://wikipedia.org/">ウィキペディア</a>
上記のコードは、スーパーハイパーリンクを定義しています。ブラウザには「ウィキペディア」と表示され、テキストの下にデフォルトで下線が引かれ、これはリンクであることを示しています。ユーザーがクリックすると、ブラウザはhref
属性で指定されたURLに移動します。
<a>
タグの内部にはテキストだけでなく、段落、画像、マルチメディアなど他の要素も置くことができます。
<a href="https://www.example.com/">
<img src="https://www.example.com/foo.jpg">
</a>
上記のコードでは、<a>
タグの内部に画像が含まれています。ユーザーが画像をクリックすると、指定されたURLに移動します。
属性
<a>
タグには以下の属性があります。
href
href
属性はリンク先のURLを示します。この値はURLまたはアンカーです。
完全なURLの例は前述しましたが、以下はアンカーの例です。
<a href="#demo">例</a>
上記のコードでは、href
属性の値が#
とアンカー名です。クリックすると、ブラウザは現在のページの中でdemo
アンカーの位置に自動的にスクロールします。
hreflang
hreflang
属性はリンク先のページが使用している言語を示します。これは単なるヒントであり、実際の機能はありません。主に検索エンジンのためのものです。
<a
href="https://www.example.com"
hreflang="en"
>例のサイト</a>
上記のコードは、リンク先のURLの言語が英語であることを示しています。
あるリソースが複数の言語バージョンを持つ場合、hreflang
をx-default
に設定することで、どのリンクがデフォルトバージョンであるかを示すことができます。
<a href="https://example.com" hreflang="x-default">English</a>
<a href="https://example.com/de" hreflang="de">German</a>
上記の例では、hreflang
をx-defalut
に設定することで、このリンクがデフォルトバージョンであることを示しています。
hreflang
属性に使用される言語コードは、共通のlang
属性と同じであり、詳細は《属性》章のlang
属性の紹介をご覧ください。
title
title
属性はリンクに関する説明を示します。マウスをリンク上に置いた時に、ブラウザがこの属性の値をツールチップ形式で表示します。
<a
href="https://www.example.com/"
title="hello"
>例</a>
上記のコードでは、ユーザーがリンク上にマウスを置くと、hello
というツールチップが表示されます。
target
target
属性はリンクがどのように開かれるかを指定します。指定されたウィンドウや```で開くことも可能です。
<p><a href="http://foo.com" target="test">foo</a></p>
<p><a href="http://bar.com" target="test">bar</a></p>
上記のコードでは、2つのリンクがともにtest
という名前のウィンドウで開かれます。最初にfoo
リンクをクリックすると、ブラウザはtest
という名前のウィンドウがないことに気付き、新しいウィンドウを作成し、test
という名前を付けてそのウィンドウにfoo.com
を表示します。その後、ユーザーがbar
リンクをクリックすると、既にtest
ウィンドウが存在するため、そのウィンドウにbar.com
が表示され、既に開いているfoo.com
が置き換えられます。
target
属性の値には、以下の4つのキーワードのいずれかを指定することもできます。
_self
:現在のウィンドウで開きます(デフォルト値)。_blank
:新しいウィンドウで開きます。_parent
:親ウィンドウで開きます。通常、親ウィンドウから開かれた子ウィンドウや<iframe>
内のリンクで使用されます。現在のウィンドウに親ウィンドウがない場合、この値は_self
と同じです。_top
:最上位のウィンドウで開きます。現在のウィンドウが最上位の場合、この値は_self
と同じです。
<a
href="https://www.example.com"
target="_blank"
>例のリンク</a>
上記のコードでは、クリックするとブラウザが新しいウィンドウを作成し、そのウィンドウでリンクを開きます。新しいウィンドウには名前がありません。
target
属性を使用する際には、rel="noreferrer"
も併用することをお勧めします。これにより、セキュリティリスクを回避できます。
rel
rel
属性は、リンクと現在のページの関係を説明します。
<a href="help.html" rel="help">ヘルプ</a>
上記のコードでは、rel
属性がリンクを現在のページのヘルプドキュメントであることを示しています。
以下は、よく使用されるrel
属性の値です。
alternate
:現在のドキュメントの別の形式(例:翻訳)。author
:著者へのリンク。bookmark
:ブックマークとして使用される永続的なアドレス。external
:現在のドキュメントの外部参照。help
:ヘルプリンク。license
:ライセンスリンク。next
:シリーズ文書の次のページ。nofollow
:検索エンジンにリンクを無視するように指示するためのもの。ユーザーが提出したコンテンツに使用され、検索ランキングを不正に上げるリンクを防ぐため。noreferrer
:リンクを開いたときに、現在のURLをHTTPヘッダーのReferer
フィールドとして送信しないようブラウザに指示する。これにより、クリック元を隠すことができる。noopener
:リンクウィンドウがJavaScriptのwindow.opener
プロパティを通じて元のウィンドウを参照できないようにブラウザに指示し、セキュリティを強化する。prev
:シリーズ文書の前のページ。search
:文書の検索リンク。tag
:文書のタグリンク。
referrerpolicy
referrerpolicy
属性は、リンクをクリックしたときにブラウザが送信するHTTPヘッダーのReferer
フィールドの動作を正確に設定するために使用されます。
この属性は次の8つの値を取ることができます:no-referrer
、no-referrer-when-downgrade
、origin
、origin-when-cross-origin
、unsafe-url
、same-origin
、strict-origin
、strict-origin-when-cross-origin
。
その中で、no-referrer
はReferer
フィールドを送信しないことを意味し、same-origin
は同じオリジンの場合のみReferer
フィールドを送信し、origin
はソース情報(プロトコル+ドメイン+ポート)だけを送信します。他の項目の説明については、HTTPドキュメントを参照してください。
ping
ping
属性は、ユーザーがクリックしたときに、指定したURLにPOSTリクエストを送信するために使用され、通常はユーザーの行動を追跡するために使用されます。
<a href="http://localhost:3000/other" ping="http://localhost:3000/log">
別のページへ
</a>
上記の例では、ユーザーがリンクをクリックすると、リダイレクトが行われるだけでなく、http://localhost:3000/log
にもPOSTリクエストが送信されます。サーバーがこのリクエストを受け取ると、ユーザーがこのリンクをクリックしたことが分かります。
このリクエストのHTTPヘッダーには、ping-from
属性(クリック行動が発生したページ)とping-to
属性(href
属性が指すページ)が含まれます。
headers: {
'ping-from': 'http://localhost:3000/',
'ping-to': 'http://localhost:3000/other'
'content-type': 'text/ping'
// ...other headers
},
注意点として、ping
属性はリンクに対してのみ有効であり、ボタンのクリックやフォームの送信などの他のインタラクションには無効です。また、Firefoxブラウザはこの属性をサポートしていません。さらに、カスタムデータを送信することもできません。
type
type
属性は、リンクURLのMIMEタイプを示します。例えば、それがウェブページなのか、画像なのか、ファイルなのかを指定します。この属性は純粋にヒント的なもので、実際の機能はありません。
<a
href="smile.jpg"
type="image/jpeg"
>サンプル画像</a>
上記のコードでは、type
属性はこれは画像であることを示しています。
download
download
属性は、現在のリンクがダウンロード用であり、別のURLへのリダイレクトではないことを示します。
<a href="demo.txt" download>ダウンロード</a>
上記のコードをクリックすると、ダウンロードダイアログが表示されます。
注意点として、download
属性はリンクとURLが同じオリジンの場合にのみ有効です。つまり、リンクは同じウェブサイトに属している必要があります。
もしdownload
属性に値が設定されている場合、その値はダウンロードするファイル名になります。
<a
href="foo.exe"
download="bar.exe"
>クリックしてダウンロード</a>
上記のコードでは、ダウンロードファイルの元のファイル名はfoo.exe
です。クリック後、ダウンロードダイアログに表示されるファイル名はbar.exe
です。
注意点として、リンクをクリックした後、サーバーのHTTPレスポンスヘッダーがContent-Disposition
フィールドを設定し、そのフィールドの値がdownload
属性と一致しない場合、そのフィールドが優先され、ダウンロード時に設定されたファイル名が表示されます。
download
属性にはもう一つの用途があります。それは、一部のアドレスが実際のURLではなくデータURLである場合、例えばdata:
から始まるURLです。この場合、download
属性は仮想URLにダウンロードファイル名を指定できます。
<a href="data:,Hello%2C%20World!">クリック</a>
上記のリンクをクリックすると、仮想ウェブページが開き、Hello World!
が表示されます。
<a
href="data:,Hello%2C%20World!"
download="hello.txt"
>クリック</a>
上記のリンクをクリックすると、ダウンロードされたhello.txt
ファイルの内容は「Hello, World!」になります。
メールリンク
リンクはメールアドレスを指すこともでき、mailto
プロトコルを使用します。ユーザーがクリックすると、ブラウザがデフォルトのメールプログラムを開き、指定したアドレスにメールを送信できます。
<a href="mailto:contact@example.com">お問い合わせ</a>
上記のコードでは、リンクはメールアドレスを指します。クリックすると、ブラウザがメールアドレスを開き、contact@example.com
にメールを送信できるようになります。
メールアドレスの他に、メールプロトコルでは他のいくつかのメール要素を指定することもできます。
subject
:件名cc
:Ccbcc
:Bccbody
:メール本文
使い方は、これらのメール要素をクエリ文字列の形式でメールアドレスの後に追加します。
<a
href="mailto:foo@bar.com?cc=test@test.com&subject=The%20subject&body=The%20body"
>メールを送信</a>
上記のコードでは、メールリンクにはメールアドレスだけでなく、cc
、subject
、body
などのメール要素も含まれています。これらの要素の値はURLエンコードされる必要があります。例えば、空白は%20
に変換されます。
メールアドレスを指定しないことも可能で、次のようになります。この場合、ユーザーはメールプログラムで送信したいメールアドレスを自分で入力します。通常はウェブページを友人と共有するために使用されます。
<a href="mailto:">友達に知らせる</a>
電話リンク
モバイルでブラウジングしているページでは、tel
プロトコルを使用して電話リンクを作成できます。ユーザーがこのリンクをクリックすると、電話が起動し、ダイヤルすることができます。
<a href="tel:13312345678">13312345678</a>
上記のコードでは、モバイルでリンクをクリックするとダイヤル画面が表示され、指定された番号を直接ダイヤルできます。
作者: wangdoc
アドレス: https://wangdoc.com/
ライセンス: クリエイティブ・コモンズ 3.0