ホームページやブログを作るときに欠かせないのが「リンク」です。
クリックすると別のページへ移動する、あの青い文字や下線が引かれた部分ですね。
HTML(エイチティーエムエル)では <a>
(エータグ)というタグを使ってリンクを作りますが、
- 「基本的な書き方はわかるけど、他にどんな使い方があるの?」
- 「画像をリンクにする方法がわからない」
- 「新しいタブで開く設定を知りたい」
- 「メールアドレスへのリンクはどうやって作るの?」
そんな疑問を持つ方も多いのではないでしょうか。
この記事では、HTML初心者の方にもわかりやすいように、リンクタグの基本から画像リンク、メールリンク、さらには知っておくと便利な応用テクニックまで詳しく解説します。
HTMLリンクの基本知識

リンクとは何か?
**リンク(Link)**は、あるページから別のページへ移動するための仕組みです。正式には「ハイパーリンク」と呼ばれ、インターネットの基本的な機能の一つです。
リンクの種類
外部リンク
自分のサイトから他のサイトへ移動するリンク
<a href="https://www.google.com">Googleへ移動</a>
内部リンク
同じサイト内の別のページへ移動するリンク
<a href="about.html">会社概要</a>
アンカーリンク
同じページ内の特定の場所へ移動するリンク
<a href="#section1">セクション1へ</a>
HTMLでリンクを作る基本:aタグ

aタグの基本構造
HTMLでリンクを作るには、<a>
(アンカータグ)を使います。最もシンプルな形は次の通りです:
<a href="移動先のURL">表示されるテキスト</a>
各部分の説明
<a>
:リンクの開始タグhref
:リンク先のURL(Hyperlink Reference の略)- 表示されるテキスト:ユーザーに表示される文字
</a>
:リンクの終了タグ
基本的なリンクの例
外部サイトへのリンク
<a href="https://www.google.com">Googleで検索</a>
<a href="https://www.youtube.com">YouTubeを見る</a>
<a href="https://www.amazon.co.jp">Amazonで買い物</a>
自分のサイト内のリンク
<a href="index.html">トップページ</a>
<a href="about.html">会社概要</a>
<a href="contact.html">お問い合わせ</a>
<a href="blog/article1.html">ブログ記事1</a>
相対パスと絶対パス
絶対パス
完全なURLを指定する方法
<a href="https://example.com/page.html">完全なURL</a>
相対パス
現在のページからの相対的な位置を指定する方法
<a href="page.html">同じフォルダ内のページ</a>
<a href="subfolder/page.html">サブフォルダ内のページ</a>
<a href="../page.html">一つ上のフォルダのページ</a>
相対パスの使い方
フォルダ構造の例:
website/
├── index.html
├── about.html
├── images/
│ └── logo.png
└── blog/
├── article1.html
└── article2.html
index.html からのリンク:
<a href="about.html">会社概要</a>
<a href="blog/article1.html">ブログ記事1</a>
blog/article1.html からのリンク:
<a href="../index.html">トップページに戻る</a>
<a href="article2.html">次の記事</a>
新しいタブでリンクを開く方法

target属性の使い方
リンク先を新しいタブ(または新しいウィンドウ)で開きたいときは、target="_blank"
を追加します:
<a href="https://www.example.com" target="_blank">新しいタブで開く</a>
target属性の値
値 | 効果 |
---|---|
_blank | 新しいタブまたはウィンドウで開く |
_self | 現在のタブで開く(デフォルト) |
_parent | 親フレームで開く |
_top | 最上位のフレームで開く |
セキュリティ面の重要な注意点
target="_blank"
を使うときは、セキュリティ上の理由から必ずrel="noopener noreferrer"
を一緒に使いましょう:
<a href="https://www.example.com" target="_blank" rel="noopener noreferrer">
安全に新しいタブで開く
</a>
なぜ rel=”noopener noreferrer” が必要なのか?
rel="noopener"
:
- 新しいページから元のページを操作されることを防ぐ
window.opener
へのアクセスを無効化
rel="noreferrer"
:
- リンク元の情報(リファラー)を送信しない
- プライバシーを保護
実用的な例
<!-- 外部サイトへのリンク -->
<a href="https://www.github.com" target="_blank" rel="noopener noreferrer">
GitHubを見る
</a>
<!-- PDFファイルを新しいタブで開く -->
<a href="document.pdf" target="_blank" rel="noopener noreferrer">
PDFを開く
</a>
<!-- 画像を新しいタブで開く -->
<a href="large-image.jpg" target="_blank" rel="noopener noreferrer">
画像を拡大表示
</a>
画像にリンクをつける方法

基本的な画像リンク
文字だけでなく、画像をクリックすると別のページへ移動させることも簡単です:
<a href="https://example.com">
<img src="sample.jpg" alt="サンプル画像">
</a>
より詳細な画像リンクの例
<!-- 商品画像をクリックすると詳細ページへ -->
<a href="product-detail.html">
<img src="product-thumbnail.jpg" alt="商品A" width="200" height="150">
</a>
<!-- ロゴをクリックするとトップページへ -->
<a href="index.html">
<img src="logo.png" alt="会社ロゴ" width="100" height="50">
</a>
<!-- バナー画像をクリックすると外部サイトへ -->
<a href="https://partner-site.com" target="_blank" rel="noopener noreferrer">
<img src="banner.jpg" alt="パートナーサイト">
</a>
画像リンクのスタイリング
<style>
.image-link {
display: inline-block;
transition: transform 0.3s ease;
}
.image-link:hover {
transform: scale(1.05);
}
.image-link img {
border: 2px solid #ddd;
border-radius: 8px;
}
.image-link:hover img {
border-color: #007bff;
}
</style>
<a href="detail.html" class="image-link">
<img src="product.jpg" alt="商品画像" width="200" height="150">
</a>
画像とテキストを組み合わせたリンク
<a href="article.html" class="article-link">
<img src="article-thumb.jpg" alt="記事サムネイル">
<div class="article-info">
<h3>記事タイトル</h3>
<p>記事の説明文...</p>
</div>
</a>
メールアドレスへのリンク

基本的なメールリンク
mailto:
を使うと、クリックしたときにメールソフトが起動し、宛先が入った状態で新規メール作成が開きます:
<a href="mailto:info@example.com">メールを送る</a>
件名や本文を設定したメールリンク
件名を設定
<a href="mailto:info@example.com?subject=お問い合わせ">
お問い合わせメール
</a>
件名と本文を設定
<a href="mailto:info@example.com?subject=お問い合わせ&body=お名前:%0D%0A%0D%0Aお問い合わせ内容:%0D%0A">
お問い合わせフォーム
</a>
注意:%0D%0A
は改行コードです。
複数の宛先を設定
<a href="mailto:info@example.com?cc=support@example.com&bcc=admin@example.com">
複数宛先メール
</a>
実用的なメールリンクの例
<!-- シンプルなお問い合わせ -->
<a href="mailto:contact@company.com">お問い合わせ</a>
<!-- サポートへの連絡 -->
<a href="mailto:support@company.com?subject=サポート依頼">
サポートに連絡
</a>
<!-- 詳細なお問い合わせフォーム -->
<a href="mailto:info@company.com?subject=ウェブサイトについて&body=お名前:%0D%0A会社名:%0D%0A%0D%0Aお問い合わせ内容:%0D%0A">
詳細なお問い合わせ
</a>
電話番号へのリンク
基本的な電話リンク
スマートフォンで便利な電話リンクも作れます:
<a href="tel:03-1234-5678">03-1234-5678</a>
国際電話番号の場合
<a href="tel:+81-3-1234-5678">+81-3-1234-5678</a>
実用的な電話リンクの例
<!-- 会社の電話番号 -->
<p>お電話でのお問い合わせ:
<a href="tel:03-1234-5678">03-1234-5678</a>
</p>
<!-- 緊急連絡先 -->
<p>緊急時連絡先:
<a href="tel:090-1234-5678">090-1234-5678</a>
</p>
ページ内リンク(アンカーリンク)

基本的なアンカーリンク
同じページ内の特定の場所へ移動するリンクです:
<!-- リンク元 -->
<a href="#section1">セクション1へ移動</a>
<!-- リンク先 -->
<h2 id="section1">セクション1</h2>
実用的なアンカーリンクの例
<!-- 目次 -->
<nav>
<h3>目次</h3>
<ul>
<li><a href="#introduction">はじめに</a></li>
<li><a href="#basic-usage">基本的な使い方</a></li>
<li><a href="#advanced-tips">応用テクニック</a></li>
<li><a href="#conclusion">まとめ</a></li>
</ul>
</nav>
<!-- 本文 -->
<section id="introduction">
<h2>はじめに</h2>
<p>内容...</p>
</section>
<section id="basic-usage">
<h2>基本的な使い方</h2>
<p>内容...</p>
</section>
<section id="advanced-tips">
<h2>応用テクニック</h2>
<p>内容...</p>
</section>
<section id="conclusion">
<h2>まとめ</h2>
<p>内容...</p>
</section>
<!-- ページトップへ戻るリンク -->
<a href="#top">ページトップへ</a>
スムーズスクロールの追加
<style>
html {
scroll-behavior: smooth;
}
</style>
これを追加すると、アンカーリンクをクリックしたときにスムーズにスクロールします。
ファイルダウンロードリンク
基本的なダウンロードリンク
<a href="document.pdf" download>PDFをダウンロード</a>
ファイル名を指定したダウンロード
<a href="file.pdf" download="会社案内.pdf">会社案内をダウンロード</a>
様々なファイル形式の例
<!-- PDFファイル -->
<a href="catalog.pdf" download="商品カタログ.pdf">
商品カタログ(PDF)
</a>
<!-- Excelファイル -->
<a href="price-list.xlsx" download="価格表.xlsx">
価格表(Excel)
</a>
<!-- 画像ファイル -->
<a href="high-res-image.jpg" download="高解像度画像.jpg">
高解像度画像をダウンロード
</a>
<!-- ZIPファイル -->
<a href="resources.zip" download="リソース一式.zip">
リソース一式をダウンロード
</a>
リンクのスタイリング

基本的なリンクのスタイル
<style>
/* 通常のリンク */
a {
color: #007bff;
text-decoration: none;
}
/* マウスオーバー時 */
a:hover {
color: #0056b3;
text-decoration: underline;
}
/* 訪問済みリンク */
a:visited {
color: #6610f2;
}
/* フォーカス時(キーボード操作) */
a:focus {
outline: 2px solid #007bff;
outline-offset: 2px;
}
</style>
ボタン風のリンク
<style>
.button-link {
display: inline-block;
padding: 10px 20px;
background-color: #007bff;
color: white;
text-decoration: none;
border-radius: 5px;
transition: background-color 0.3s ease;
}
.button-link:hover {
background-color: #0056b3;
color: white;
}
</style>
<a href="contact.html" class="button-link">お問い合わせ</a>
アイコン付きリンク
<style>
.icon-link {
display: inline-flex;
align-items: center;
gap: 8px;
text-decoration: none;
color: #333;
}
.icon-link:hover {
color: #007bff;
}
</style>
<a href="mailto:info@example.com" class="icon-link">
📧 メールを送る
</a>
<a href="tel:03-1234-5678" class="icon-link">
📞 電話をかける
</a>
<a href="https://twitter.com" target="_blank" rel="noopener noreferrer" class="icon-link">
🐦 Twitter
</a>
応用テクニック
1. 条件付きリンク
JavaScript を使って条件に応じてリンクを有効/無効にする:
<style>
.disabled-link {
color: #ccc;
cursor: not-allowed;
text-decoration: none;
}
</style>
<a href="premium-content.html" id="premiumLink" class="disabled-link">
プレミアムコンテンツ
</a>
<script>
function enablePremiumLink() {
const link = document.getElementById('premiumLink');
link.classList.remove('disabled-link');
link.style.color = '#007bff';
link.style.cursor = 'pointer';
}
// 条件が満たされたときに実行
// enablePremiumLink();
</script>
2. 確認ダイアログ付きリンク
<a href="delete-account.html" onclick="return confirm('アカウントを削除しますか?この操作は元に戻せません。')">
アカウントを削除
</a>
3. トラッキング機能付きリンク
<a href="https://partner-site.com"
onclick="trackClick('partner-link', 'header')"
target="_blank" rel="noopener noreferrer">
パートナーサイト
</a>
<script>
function trackClick(linkName, location) {
// Google Analytics などのトラッキング
console.log(`Link clicked: ${linkName} in ${location}`);
}
</script>
4. 動的なリンク生成
<script>
function createDynamicLink(url, text, target = '_self') {
const link = document.createElement('a');
link.href = url;
link.textContent = text;
link.target = target;
if (target === '_blank') {
link.rel = 'noopener noreferrer';
}
return link;
}
// 使用例
const dynamicLink = createDynamicLink('https://example.com', 'Dynamic Link', '_blank');
document.body.appendChild(dynamicLink);
</script>
よくある問題と解決法

問題1:リンクが機能しない
原因と解決法
URLの間違い
<!-- 間違い -->
<a href="htp://example.com">リンク</a>
<!-- 正しい -->
<a href="https://example.com">リンク</a>
ファイルパスの間違い
<!-- 間違い -->
<a href="page.html">リンク</a>
<!-- 正しい -->
<a href="./page.html">リンク</a>
問題2:新しいタブで開いてもセキュリティ警告が出る
解決法
<!-- 問題のあるコード -->
<a href="https://example.com" target="_blank">リンク</a>
<!-- 解決したコード -->
<a href="https://example.com" target="_blank" rel="noopener noreferrer">リンク</a>
問題3:メールリンクが文字化けする
日本語の件名や本文の場合
<!-- 文字化けする可能性 -->
<a href="mailto:info@example.com?subject=お問い合わせ">メール</a>
<!-- 正しい方法 -->
<a href="mailto:info@example.com?subject=%E3%81%8A%E5%95%8F%E3%81%84%E5%90%88%E3%82%8F%E3%81%9B">メール</a>
または、JavaScriptを使用:
<a href="#" onclick="sendEmail()">メールを送る</a>
<script>
function sendEmail() {
const email = 'info@example.com';
const subject = encodeURIComponent('お問い合わせ');
const body = encodeURIComponent('お名前:\n\nお問い合わせ内容:\n');
window.location.href = `mailto:${email}?subject=${subject}&body=${body}`;
}
</script>
問題4:リンクの色が変わらない
CSSの優先順位の問題
<style>
/* 詳細度が低い */
a { color: blue; }
/* 詳細度が高い */
.content a { color: red; }
/* より詳細度が高い */
.content .link { color: green; }
/* 最も詳細度が高い */
.content a.link { color: purple; }
</style>
アクセシビリティを考慮したリンク
適切なリンクテキスト
悪い例
<a href="article.html">こちら</a>
<a href="download.pdf">クリック</a>
<a href="contact.html">詳しくはここから</a>
良い例
<a href="article.html">最新記事「HTMLの基本」を読む</a>
<a href="download.pdf">会社案内(PDF)をダウンロード</a>
<a href="contact.html">お問い合わせフォームへ</a>
aria-label の活用
<a href="https://twitter.com" aria-label="Twitter公式アカウント">
<svg><!-- Twitterアイコン --></svg>
</a>
<a href="tel:03-1234-5678" aria-label="電話番号 03-1234-5678 に発信">
📞
</a>
キーボードナビゲーション対応
<style>
a:focus {
outline: 2px solid #007bff;
outline-offset: 2px;
}
a:focus:not(:focus-visible) {
outline: none;
}
</style>
SEO を考慮したリンク

内部リンクの最適化
<!-- 適切なアンカーテキスト -->
<a href="seo-guide.html">SEO対策の完全ガイド</a>
<!-- 関連ページへのリンク -->
<nav aria-label="関連記事">
<h3>関連記事</h3>
<ul>
<li><a href="html-basics.html">HTML基礎講座</a></li>
<li><a href="css-tutorial.html">CSS入門チュートリアル</a></li>
<li><a href="javascript-guide.html">JavaScript学習ガイド</a></li>
</ul>
</nav>
外部リンクの最適化
<!-- 信頼できるサイトへのリンク -->
<a href="https://developer.mozilla.org/ja/" target="_blank" rel="noopener noreferrer">
MDN Web Docs
</a>
<!-- スポンサーリンクの場合 -->
<a href="https://sponsor-site.com" target="_blank" rel="noopener noreferrer sponsored">
スポンサーサイト
</a>
<!-- ユーザー生成コンテンツの場合 -->
<a href="https://user-site.com" target="_blank" rel="noopener noreferrer ugc">
ユーザーのサイト
</a>
まとめ:効果的なリンクの作り方
重要なポイント
基本的なリンクの作成
<a href="URL">テキスト</a>
が基本構造- 相対パスと絶対パスを使い分ける
- 適切なアンカーテキストを使用する
セキュリティの確保
target="_blank"
にはrel="noopener noreferrer"
を必ず併用- https:// を優先的に使用
- 外部リンクには適切な
rel
属性を設定
ユーザビリティの向上
- リンクの目的を明確にする
- スタイリングで視覚的にわかりやすくする
- アクセシビリティを考慮する
目的別リンクの使い分け
目的 | 使用方法 | 注意点 |
---|---|---|
外部サイト | target="_blank" rel="noopener noreferrer" | セキュリティ対策必須 |
内部ページ | 相対パス使用 | ファイル構造に注意 |
メール送信 | mailto: | 日本語は要エンコード |
電話発信 | tel: | スマホ対応 |
ファイルDL | download 属性 | ファイル名を指定 |
コメント