ページ内リンクで「迷子」を防ぐ!idとフラグメントの魔法をマスターしよう
Webサイトを作っていると、「長い文章の途中で、パッと特定の場所に飛びたい!」と思うことはありませんか? 例えば、FAQページで質問をクリックしたら、その回答までシュッと画面が移動するようなアレです。
「難しそう…」と思うかもしれませんが、実はこれ、HTMLの「id(アイディー)」と「フラグメント識別子」という2つの道具を使うだけで、驚くほど簡単に実装できるんです。
今日は、初心者の方でも迷わないように、この仕組みを日常の例えを交えながら解説していきますね。
—
1. 「id」は、見出しに付ける「名札」です
まず想像してみてください。あなたは巨大なショッピングモールにいます。「3階の雑貨コーナーに行きたい!」と思ったとき、どこを目指しますか? そう、「3階」という看板やフロアガイドを見ますよね。
HTMLの世界でも同じです。`
`から`
`といった見出しタグは、ページの「看板」です。その看板ひとつひとつに「名札」を付けてあげるのが`id`属性の役割です。
私たちについて
ここに私たちの活動内容を書きます…
提供サービス
ここでサービスの説明をします…
ここで大切なのは、「idの名前は世界に一つだけ」にするというルールです。名札が同じだと、ブラウザ(ChromeやSafariなど)が「どっちに飛べばいいの!?」と混乱してしまいますからね。
—
2. 「フラグメント識別子」は、目的地を指す「矢印」
名札を付けたら、次はそこへ行くための「矢印」を作りましょう。これがフラグメント識別子です。
やり方はとってもシンプル。リンク先のURLの末尾に「#(シャープ)」を付けて、さっき決めた名札の名前を書くだけです。
これだけで、ユーザーがリンクをクリックした瞬間に、ブラウザは「おっ、`#services`という名札の人を探せばいいんだな!」と理解して、シュッとそこまでスクロールしてくれます。これがWebブラウザの粋な計らい、フラグメント識別子の挙動なんです。
—
3. ここでつまずきがち!「あれ、ズレてない?」
さて、実装してみるとたまに遭遇するのが「見出しがヘッダーメニューの裏に隠れちゃう問題」です。
Webサイトの上部に固定のメニューがある場合、`id`に飛ぶと見出しがメニューの下に潜り込んでしまうことがあります。これ、初心者の頃は本当に悩みますよね。でも、大丈夫。CSSで簡単に解決できます。
/ すべての見出しに対して、少しだけ「上側の余白」を確保する魔法 /
h2 {
/ 固定ヘッダーの高さが例えば60pxなら、少し余裕を持って80pxくらい空けるのがコツです /
scroll-margin-top: 80px;
}
この `scroll-margin-top` というプロパティ、最近のWeb制作では欠かせない救世主です。これを使うと、ブラウザが「飛ぶときは、少し手前で止まってね」と理解してくれるようになります。
—
まとめ:Webサイトを「親切な案内人」に
ページ内リンクを整えることは、単なる技術的な実装ではありません。読者が知りたい情報に最短距離でたどり着けるようにする、「おもてなし」そのものです。
1. id属性で、見出しにユニークな名札を付ける。
2. #(フラグメント識別子)で、目的地への矢印を書く。
3. scroll-margin-topで、ズレを防いで快適な移動を叶える。
まずはご自身の練習ページで、小さなリンクを作ってみてください。「おっ、本当に飛んだ!」という感動が、あなたのコーディングの腕をグンと引き上げてくれるはずです。
もし途中でうまくいかなくても、焦らなくて大丈夫。何度も書いて動かしてみるのが、一番の近道ですよ!応援しています!

コメント