HTMLのaタグ完全解説|リンクの書き方・属性・NG例まで

HTML
less compilation computer programming coding language for website technology background

URLなどに飛ぶ(リンク)させる為の書き方を詳しくお話していきます。

URLリンクはa要素

HTMLでURLへリンクさせる場合は、「a要素」を使用します。
正式名称は Anchor(アンカー)要素といいます。
記述コードは、<a href = “”></a>となります。

【完成コード】
<a href = “https://hyouchan.com/”>ひょーちゃんのWEBデザインブログ</a>

href属性を基本として使用する

href属性は、設定するリンクは何を参照するのか?を指定することが出来ます。
ハイパーテキスト・リファレンス(リンクで相互に繋がる文章・参照先)の略称となります。

頻繁に使用するリンク方法を5つ載せていきます。

外部リンク(絶対パス)

<a href = “https://hyouchan.com”>ひょーちゃんのWEBデザインブログ</a>

常に同じページに飛びます。
外部サイトに飛ぶ先に使用します。

内部リンク(相対パス)

<a href = “about.html”>ひょーちゃんのWEBデザインブログ</a>

相対パスと言って、同じサイト内のページに飛ばす際に使用します。
外部サイトに飛ばす際には使用しません。

相対パスの種類は以下の3つになります。

  • 同じフォルダ「about.html」
  • 下のフォルダ「sub/page.html」
  • 上のフォルダ「../index.html」

ページ内リンク

<a href = “#contact”>お問い合わせへ</a>

<!– ここに移動したい(これはコメントです) –>
<section id = “contact”>…</section>

アンカーリンクと言って、ページ内の特定位置に移動する際に使用します。
場面の想定は、目次から各見出しにジャンプしたり、FAQの開閉リンクとなります。

メール送信リンク

<a href = “meilto:test@example.com”>メールする</a>

メール送信画面を開く際に使用します。
ただし、メールアプリが勝手に起動する為、ユーザーが驚いてしまう懸念もあります。
その為、「問合せフォーム」を活用する方がいい場合もあります。

問合せフォームとは?

名前の通り、問合せ専門のフォームです。
あらかじめ問合せ内容が決められいて、ユーザーが入力欄に打ち込んだ情報が届きます。

<form action = “/send” method = “post” >
 <label>お名前</label>
 <input type = “text” name = “name” required>

 <label>メールアドレス</label>
 <input type = “email” name = “email” required>

 <label>お問い合わせ内容</label>
 <textarea name = “message” rows = “5” required></textarea>

 <button type = “submit”>送信</button>
</from>

上記のような記述コードが問合せフォームとなります。

  • ブラウザで完結する
  • 入力制限が出来る
  • スパム対策が出来る
  • メールアドレスを非公開でいい

メール送信リンクを使用するよりも、問合せフォームを使うことがメリットが多いです。

電話リンク

<a href = “tel:080XXXXXXXX”>電話する</a>

スマホを使用して電話画面を開く際に使用します。
注意点としては、以下の2つとなります。

  • パソコンではクリックしても意味がない
  • 電話番号に「-(ハイフン)」は入れてはいけない

a要素で使用するその他属性

a要素にhref属性と組み合わせて使用する属性を5つ載せていきます。

target属性

リンクの開き方を「別タブで開く」もしくは「同じタブで開く」から指定することが出来ます。外部サイトに飛ばすリンクはほぼ100%で「別タブで開く」を指定します。

理由としては、ユーザーは基本的に元のページを閉じたくない心理があるからです。また、外部サイトに飛ぶ場合は、元サイトの離脱を防ぐ為に役立ちます。

別タブで開く場合は「_blank」を使用します

※ 内部リンクでは意味がないので基本的に使用しません

<a href = “https://hyouchan.com” target = “_blank”>別タブで開く</a>

同じタブで開く場合は「_self」を使用します

※ デフォルトなので省略可能です

※ 詳しく調べる

<a href = “https://hyouchan.com” target = “_self”>同じタブで開く</a>

rel属性

セキュリティ対策やSEOの最適化を行うことが出来ます。
先ほどの「target =”_blank”」とセットで使用する必要があります。
理由は、設定する記述コードの役割が 「別タブのページが元のページ操作を出来る脆弱性を防ぐ」内容の為です。

< a href = “https://hyouchan.com” target = “_blank” rel = “noopener noreferrer”>

noopener

新しいタブで開いたページが、元ページのコードを操作出来ないようにする。

noreferrer

元ページのURLをアクセス先に渡さないようにする。

title属性

カーソルを置くと説明文を表示してくれる補足情報を付与出来ます。
情報を付与する際に気をつけるポイントは、重複した意味を記述しないことです。
例えば、補足したい文字が「説明リンク」と表示されているのに、補足情報側にも「説明リンク」と記述するのはやめましょう。

< a href = “page.html” title = “このページの詳細見る”>説明リンク</a>

download属性

ファイルをブラウザで開かずに、強制ダウンロードさせることが出来ます。

<a href = “data.pdf” download>PDFをダウンロードする</a>

class属性

ボタン風のリンクを作ることが出来ます。
CSSでボタン風に装飾するまでがセットとなります。

<a herf = “contact.html” class = “btn”>お問い合わせはこちら</a>

a要素に記述するインライン要素、ブロック要素

a要素は、インライン要素・ブロック要素が記述可能となっています。

インライン要素

インライン要素とは、必要な部分だけを装飾・意味付けする役割があり、記述コード内の前後に改行を伴わない特徴があります。

< a href =”https://XXX”><strong>ひょーちゃんの公式ブログ</strong><a/>
例えば↑に記述したコードは “文字の強調” の役割が与えられています。

a要素に記述していいインライン要素一覧
  • span
  • strong
  • em
  • img
  • code
  • label
  • small
  • b , i
  • time
  • abbr
  • mark

ブロック要素

ブロック要素とは、ページの横幅を占領する役割があり、記述コード内の前後に自動的に改行は入る特徴があります。

< a href =”https://XXX”>
<div>ひょーちゃんの公式ブログ</div>
</a>
例えば↑に記述したコードは、”div”がページの横幅を占領する役割があります。

a要素に記述していいブロック要素一覧
  • div
  • p
  • ul , ol , li
  • section
  • article
  • aside
  • header
  • footer
  • table
  • figure

【NG】a要素に記述してはいけない一覧

a要素には記述してないコードも存在します。
具体的には、「インタラクティブ要素」または「ネスト規則」です。

インタラクティブ要素

インタラクティブ要素とは、操作を持つ要素のことです。
NGの理由としては、操作対象をリンクで包んでしまい意図しない動きになる為です。

NGなインタラクティブ要素一覧
  • button
  • select
  • textarea
  • input

a要素同士の入れ子

a要素にa要素を入れ子構造(ネスト)してしまうと、クリックが正しく反応しなくなります。

< a href = “#”>
<a href = “#”>ここが入れ子になっている</a>
</a>

コメント

タイトルとURLをコピーしました