事の
経緯
ハッシュはtarget疑似クラスとの併用でGPS化
- これまで、ハッシュについて、いくつか記事を公開してきたけど、今回はさらに実用的な記事を紹介するよ。
ハッシュはtarget疑似クラスとセットで使うことでまるでGPSのような使い方ができるんだ。
登場したのは15年ほど前だから、もうずいぶんと枯れた技術だね。私もまったく気にも留めてなかった。
それが最近、急に魅力を放ち始めたんだよね。実際面白いんだよ、これが。
これは、最近のCSSや他のJS、ブラウザの進化が、target疑似クラスの真価を見直すきっかけになったんじゃないかな。(ダジャレになっちゃったね爆)
target疑似クラスとは
- ちょっと異質な疑似クラスtarget
まずは基本のメカニズムから。:target は、「現在のURLの末尾にあるハッシュ(#id)と、ページ内の要素の id が一致した瞬間」にだけ適用される疑似クラスなんだ。
なんか特殊だよね。
JSのクリックイベントを一切書かずに、「状態の切り替え(State Management)」をURL側(ブラウザの標準機能)に委ねられるのが、この機能の最大の魅力。
なんかすごく魅力的なのになぜ普及しなかったんだろうね。
基本的な概念のコードを下記に。<!-- リンクをクリックすると、URLが example.com/#section1 になる --> <a href="#section1">URLを#section1へ切り替え</a> <!-- URLのハッシュが #section1 の時だけ、この要素にスタイルが当たる --> <section id="section1" class="box"> <h2>セクション 1</h2> </section> /* 通常時は非表示 */ .box { display: none; } /* URLのハッシュとidが一致した時だけ表示 */ .box:target { display: block; background-color: #f0f0f0; }