まず結論(1行)
aタグでページ遷移・外部サイト・ファイルなどへの「行き先」を作れます(=Webの回遊の核)。
最小の書き方(コピペで動く最小コード)
HTMLCode
<!doctype html>
<html lang="ja">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>aタグの基本</title>
</head>
<body>
<h1>リンクを作る</h1>
<p>
<a href="https://example.com">外部サイトへ</a>
</p>
<p>
<a href="./about.html">同じサイトの別ページへ</a>
</p>
</body>
</html>
Previewdesktop
HTMLCode
<!doctype html>
<html lang="ja">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>aタグの基本</title>
</head>
<body>
<h1>リンクを作る</h1>
<p>
<a href="https://example.com">外部サイトへ</a>
</p>
<p>
<a href="./about.html">同じサイトの別ページへ</a>
</p>
</body>
</html>
Preview を表示
重要ポイント(初心者が迷う所だけ)
- aはアンカー(anchor):クリックできる“リンク”を作る要素。
- 行き先はhref属性で指定する(hrefがないと基本リンクにならない)。
- リンクの中身はテキストでも画像でもOK(詳細は後のテーマで扱う)。
- aは遷移が目的:押して何かを実行する(送信・開閉)ならbuttonが向くことが多い。
例で理解(よく使うパターン:5つ)
1) 外部サイトへ
HTMLCode
<a href="https://example.com">公式サイト</a>
Previewdesktop
HTMLCode
<a href="https://example.com">公式サイト</a>
Preview を表示
2) 同一サイト内(相対パス)
HTMLCode
<a href="/contact.html">お問い合わせ</a>
Previewdesktop
HTMLCode
<a href="/contact.html">お問い合わせ</a>
Preview を表示
3) ページ内リンク(同じページの特定位置へ)
HTMLCode
<a href="#faq">FAQへ飛ぶ</a>
<h2 id="faq">よくある質問</h2>
Previewdesktop
HTMLCode
<a href="#faq">FAQへ飛ぶ</a>
<h2 id="faq">よくある質問</h2>
Preview を表示
4) メールを開く(環境による)
HTMLCode
<a href="mailto:info@example.com">メールする</a>
Previewdesktop
HTMLCode
<a href="mailto:info@example.com">メールする</a>
Preview を表示
5) 電話をかける(スマホ向き)
HTMLCode
<a href="tel:0312345678">電話する</a>
Previewdesktop
HTMLCode
<a href="tel:0312345678">電話する</a>
Preview を表示
使い分け(aと似てる要素との違い)
- a:どこかへ移動する(ページ/位置/別サイト/メール/電話)
- button:その場で操作する(送信、モーダルを開く、再生する等)
- divにクリック(JSで頑張る)
- できるけどアクセシビリティが落ちやすいので基本避ける(リンクはaで)
実務のコツ(SEO・安全・アクセシビリティ)
- リンク文言は具体的に:「こちら」より「料金ページを見る」の方が分かりやすい。
- クリック範囲が小さいと押しづらい:CSSで余白を付けると実務で助かる。
- 外部リンクを別タブにする場合は後のテーマで扱うが、基本は安全のためにrelもセットで考える。
NG・禁止例(なぜダメ?どう直す?)
1) hrefがない
HTMLCode
<a>クリック</a>
Previewdesktop
HTMLCode
<a>クリック</a>
Preview を表示
→ ✅ hrefで行き先を書く(ページ内の仮ならhref="#"ではなく、できれば実URLか、ボタン用途ならbutton)
2) リンクっぽいけどリンクじゃない(span/div)
HTMLCode
<span onclick="location.href='/about.html'">About</span>
Previewdesktop
HTMLCode
<span onclick="location.href='/about.html'">About</span>
Preview を表示
→ ✅ ふつうに <a href="/about.html">About</a>
3) 「ここをクリック」だけ
HTMLCode
<a href="/price.html">ここをクリック</a>
Previewdesktop
HTMLCode
<a href="/price.html">ここをクリック</a>
Preview を表示
→ ✅ <a href="/price.html">料金プランを見る</a>
4) ページ内リンク先(id)が存在しない
HTMLCode
<a href="#faq">FAQ</a>
Previewdesktop
HTMLCode
<a href="#faq">FAQ</a>
Preview を表示
(id="faq"がどこにもない)
→ ✅ 飛び先に id="faq" を付ける
見た目を整える(HTML+CSSセット:3例)
例1:押しやすいテキストリンク(色指定なし)
例1:押しやすいテキストリンク(色指定なし)
HTMLCode
<a class="link" href="/contact.html">お問い合わせ</a>CSSCode
.link {
display: inline-block;
padding: 8px 10px;
text-decoration: underline;
text-underline-offset: 4px;
border-radius: 10px;
}
.link:hover {
opacity: 0.75;
}
.link:focus-visible {
outline: 2px solid currentColor;
outline-offset: 3px;
}Previewdesktop
HTMLCode
<a class="link" href="/contact.html">お問い合わせ</a>CSSCode
.link {
display: inline-block;
padding: 8px 10px;
text-decoration: underline;
text-underline-offset: 4px;
border-radius: 10px;
}
.link:hover {
opacity: 0.75;
}
.link:focus-visible {
outline: 2px solid currentColor;
outline-offset: 3px;
}Preview を表示
例2:ボタン“風”リンク(遷移はaでOK)
例2:ボタン“風”リンク(遷移はaでOK)
HTMLCode
<a class="cta" href="/signup.html">無料で始める</a>CSSCode
.cta {
display: inline-block;
padding: 10px 14px;
border: 1px solid currentColor;
border-radius: 999px;
text-decoration: none;
font-weight: 700;
box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
transition: transform 0.15s ease, opacity 0.15s ease;
}
.cta:hover {
transform: translateY(-1px);
opacity: 0.85;
}Previewdesktop
HTMLCode
<a class="cta" href="/signup.html">無料で始める</a>CSSCode
.cta {
display: inline-block;
padding: 10px 14px;
border: 1px solid currentColor;
border-radius: 999px;
text-decoration: none;
font-weight: 700;
box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
transition: transform 0.15s ease, opacity 0.15s ease;
}
.cta:hover {
transform: translateY(-1px);
opacity: 0.85;
}Preview を表示
例3:リスト型ナビ(複数リンクを整理)
例3:リスト型ナビ(複数リンクを整理)
HTMLCode
<nav class="nav" aria-label="サイト内メニュー">
<a class="nav__item" href="/about.html">About</a>
<a class="nav__item" href="/works.html">Works</a>
<a class="nav__item" href="/contact.html">Contact</a>
</nav>CSSCode
.nav {
display: flex;
gap: 10px;
padding: 10px;
border: 1px solid currentColor;
border-radius: 14px;
flex-wrap: wrap;
}
.nav__item {
padding: 8px 10px;
text-decoration: underline;
text-underline-offset: 4px;
border-radius: 10px;
}
.nav__item:hover {
opacity: 0.75;
}Previewdesktop
HTMLCode
<nav class="nav" aria-label="サイト内メニュー">
<a class="nav__item" href="/about.html">About</a>
<a class="nav__item" href="/works.html">Works</a>
<a class="nav__item" href="/contact.html">Contact</a>
</nav>CSSCode
.nav {
display: flex;
gap: 10px;
padding: 10px;
border: 1px solid currentColor;
border-radius: 14px;
flex-wrap: wrap;
}
.nav__item {
padding: 8px 10px;
text-decoration: underline;
text-underline-offset: 4px;
border-radius: 10px;
}
.nav__item:hover {
opacity: 0.75;
}Preview を表示
理解チェック(3問・答え付き)
Q. リンクの行き先を決める属性は?
A. href。
Q. 「その場で開閉する」操作はaとbuttonどっちが向く?
A. button(aは基本遷移)。
Q. 「こちら」より良いリンク文言は?
A. 内容が分かる具体的な文言(例:料金プランを見る)。
ミニ演習(すぐ試せる小課題)
- 自己紹介ページに「連絡先へ」リンク(
href="#contact")を作り、下にid="contact"の見出しを置いてジャンプさせよう。 - 「無料で始める」などのCTAリンクを1つ作り、CSS例2で“ボタン風”にしてみよう。