HTML Academy · レッスン

セクションへのリンクとフラグメント識別子

id属性とハッシュリンクを使って、ページ内のセクションへ移動します。

レッスン 4/413 ステップ

「セクションへのリンクとフラグメント識別子」はCoddyKit上の無料HTML Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはHTML Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 HTML Academyコースには全4レッスンが含まれています。

フラグメント識別子とは

フラグメント識別子とは、#記号の後に続くURLの一部分です。

https://example.com/page#section-3
                          │
                          └─ Fragment: "section-3"

<!-- The browser: -->
<!-- 1. Loads the page -->
<!-- 2. Scrolls to the element with id="section-3" -->

idでアンカーのターゲットを作成する

セクションにリンクするには、idを付けます。

<!-- The target: give any element an id -->
<h2 id="installation">Installation</h2>
<h2 id="configuration">Configuration</h2>
<h2 id="faq">Frequently Asked Questions</h2>

<!-- The link: use # + id value -->
<a href="#installation">Jump to Installation</a>
<a href="#faq">Go to FAQ</a>

別のページからリンクする

別のページにあるセクションへリンクできます。

<!-- From a different page -->
<a href="/docs/guide#installation">Installation Guide</a>
<!-- Loads /docs/guide and scrolls to #installation -->

<!-- Absolute URL to a section -->
<a href="https://example.com/docs#api">API Documentation</a>

idの命名規則

有効なid値の規則:

  • ページ内で一意でなければならない — 2つの要素に同じidを指定してはいけない
  • CSSでは数字で始められない(HTMLでは有効)
  • 空白は使用しない — ハイフンを使用する:my-section
  • 大文字と小文字を区別する:#FAQと#faqは異なる

目次パターン

フラグメントリンクを使用すると、ページ内の目次を作成できます。

<nav aria-label="Table of Contents">
  <ol>
    <li><a href="#intro">Introduction</a></li>
    <li><a href="#setup">Setup</a></li>
    <li><a href="#usage">Usage</a></li>
    <li><a href="#api">API Reference</a></li>
  </ol>
</nav>

<h2 id="intro">Introduction</h2>
<h2 id="setup">Setup</h2>

CSSでスムーズスクロールを実現する

フラグメントナビゲーションにスムーズなスクロール動作を追加します。

/* Apply to the entire page */
html {
  scroll-behavior: smooth;
}

/* Or for specific containers */
.scrollable {
  scroll-behavior: smooth;
}

固定ヘッダー用のスクロール余白

固定されたナビゲーションバーが、スクロール先のセクションに重なることがあります。scroll-margin-topで解決できます。

/* If you have a 60px fixed header */
:target {
  scroll-margin-top: 70px;
}

/* Or set globally for all headings */
h2, h3, h4 {
  scroll-margin-top: 70px;
}
/* scroll-margin-top offsets where the browser scrolls to */

:target CSS疑似クラス

:targetを使用すると、現在ターゲットになっているセクションのスタイルを設定できます。

/* Highlight the targeted section */
:target {
  background-color: #fff3cd;
  outline: 2px solid #ffc107;
  padding: 1rem;
}

<!-- Result: when user clicks #installation, -->
<!-- the installation section gets highlighted -->

トップへ戻るリンク

よく使われるパターンとして、フラグメントを使用してトップへ戻るリンクを作成できます。

<a href="#top" id="back-to-top">↑ Back to top</a>
<!-- Link to page top: either id="top" on body or use empty href # -->
<!-- Always give it meaningful text for accessibility -->

<!-- Position it fixed with CSS: -->
<!--
#back-to-top {
  position: fixed;
  bottom: 1rem;
  right: 1rem;
}
-->

フラグメントとブラウザー履歴

フラグメントナビゲーションはブラウザーの履歴にエントリを追加します。

  • フラグメントリンクをクリックすると、履歴エントリが追加される
  • ブラウザーの戻るボタンを押すと、前のスクロール位置に戻る
  • これは通常の動作です — SPAではpushStateを使用して履歴を操作できます

名前付きアンカー(レガシー)

id属性が登場する前は、アンカーに<a name>を使用していました。現在は廃止されています。

<!-- Old way (do not use): -->
<a name="section-1"></a>
<h2>Section 1</h2>

<!-- Modern way: -->
<h2 id="section-1">Section 1</h2>
<!-- Use id on the target element, not a separate anchor tag -->

確認問題

固定されたナビゲーションバーがスクロール先のセクションを覆うのを防ぐCSSプロパティは何ですか。

まとめ:フラグメント識別子

フラグメントリンクの要点:

  • href内の#idを使用すると、そのidを持つ要素までスクロールする
  • すべてのターゲット要素には一意のid属性が必要
  • 同じページ内でも、別のページからでも使用できる
  • scroll-behavior: smoothでアニメーション付きスクロールを実現する
  • scroll-margin-topで固定ヘッダーとの重なりを避ける
  • :target疑似クラスで現在のセクションを強調表示する
無料で開始

AI チューターと学ぶ HTML — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
40
レッスン
159

よくある質問

「セクションへのリンクとフラグメント識別子」レッスンは無料ですか?

はい。「セクションへのリンクとフラグメント識別子」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、HTML Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 HTML Academyコースには全4レッスンが含まれています。

「セクションへのリンクとフラグメント識別子」で何を学びますか?

id属性とハッシュリンクを使って、ページ内のセクションへ移動します。 ブラウザで直接実行するハンズオンコードでHTML Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

HTML Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのHTML Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「セクションへのリンクとフラグメント識別子」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このHTML Academyレッスンでコードを書いて実行できますか?

はい。すべてのHTML Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. anchor要素とhref属性
  2. 絶対URLと相対URL
  3. リンクを新しいタブで開く方法とdownload属性
  4. セクションへのリンクとフラグメント識別子
← HTML Academyに戻る