【HTML】ページ内リンクを作成する方法【基本と応用】

【HTML】ページ内リンクを作成する方法【基本と応用】

目次

ページ内リンクとは

ページ内リンク(アンカーリンク)は、同じページ内の特定の場所に移動するためのリンクです。通常のハイパーリンクと異なり、ページのリロードなしにスムーズに移動できます。特に長いページで便利に使えます。

基本的なページ内リンクの作成方法

ページ内リンクは、HTMLのタグを使用して作成します。リンク先となる場所にはid属性を設定し、リンクにはhref属性に#(ハッシュ記号)を使います。


    <a href="#section1">セクション1へ移動</a>
    <h2 id="section1">セクション1</h2>
    

テキストを使ったアンカーリンク

リンクのテキストは自由に設定できます。


    <a href="#content">こちらをクリックして内容へ</a>
    <p id="content">ここがリンク先の内容です。</p>
    

id属性を使ったアンカーリンク

id属性を使うことで、ページ内の特定の要素にリンクを設定できます。idはページ内で一意である必要があります。


    <a href="#about">概要へ移動</a>
    <div id="about">
        <h2>概要</h2>
        <p>このページはHTMLのページ内リンクの説明をしています。</p>
    </div>
    

name属性を使ったアンカーリンク(非推奨)

以前はname属性を使ったアンカーが一般的でしたが、現在はid属性が推奨されています。

例(非推奨)


    <a name="old_link"></a>
    <a href="#old_link">このリンクをクリック</a>
    

トップへ戻るリンクの作成

長いページでは、ページの先頭に戻るリンクを用意すると便利です。


    <a href="#top">トップへ戻る</a>
    

ページ内のさまざまなセクションへリンクを作成し、ナビゲーションを作ることもできます。


    <nav>
        <a href="#section1">セクション1</a> |
        <a href="#section2">セクション2</a>
    </nav>

    <h2 id="section1">セクション1</h2>
    <p>ここにセクション1の内容が入ります。</p>

    <h2 id="section2">セクション2</h2>
    <p>ここにセクション2の内容が入ります。</p>
    

CSSやJavaScriptと組み合わせる

ページ内リンクはCSSやJavaScriptと組み合わせることで、より滑らかな動作を実現できます。

CSSを使う例

特定のセクションに移動したときに背景色を変更する。


    <style>
        #target:target {
            background-color: yellow;
        }
    </style>

    <a href="#target">ターゲットへ移動</a>
    <p id="target">このセクションが強調されます。</p>
    

JavaScriptを使う例

スムーズスクロールを実装するには、JavaScriptを使います。


    <script>
        document.querySelectorAll('a[href^="#"]').forEach(anchor => {
            anchor.addEventListener('click', function(e) {
                e.preventDefault();
                const target = document.querySelector(this.getAttribute('href'));
                target.scrollIntoView({ behavior: 'smooth' });
            });
        });
    </script>
    

まとめ

ページ内リンクは、長いページのナビゲーションを向上させる便利な機能です。基本的な方法から、CSSやJavaScriptを活用した応用までさまざまな使い方があります。ぜひ活用してみてください。

トップへ戻る

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です