セクションへのリンクとフラグメント識別子
id属性とハッシュリンクを使って、ページ内のセクションへ移動します。
「セクションへのリンクとフラグメント識別子」は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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- anchor要素とhref属性
- 絶対URLと相対URL
- リンクを新しいタブで開く方法とdownload属性
- セクションへのリンクとフラグメント識別子