:target擬似クラスを使ったプルダウンメニュー

2008年2月15日 11:33

RedLine MagazineさんのCSS3 :target擬似クラスでイメージギャラリーを見て、ふと思いついたのでサンプルを作ってみた。

▼サンプルはこちら
:target擬似クラスを使ったプルダウンメニューサンプル

内容は、:target擬似クラスを使った、windowsのメニューバーのようにクリックしたらメニューが現れるタイプのメニュー。
それを、JavascriptなしでCSSのみでやってしまおう、というのが今回の主旨。

▼EntryMore▼

ただ、問題がいくつかあって、:target擬似クラスに対応していないブラウザではまったく動作しないこと。
そのために、結局Javascriptを併用しないといけないんだけど、IE8の話があったりと、今後はCSS3の実装が進んでいくと思われるので、:target擬似クラスがほぼすべてのブラウザで使用可能になれば、いずれは使えるかなと思ってエントリー。

大まかに概要を話すと、クリックしたときに出てくるメニュー部分は隠しておき、そのメニューの要素にIDを設定し、そのIDをtargetとしてtarget付きリンク(#menuみたいなやつ)をクリックした際に、そのメニューがアクティブになって表示される、というもの。

ただ、普通にメニューを表示してしまうと、そのメニューを隠すには他のリンクをクリックしないといけなくなってしまう。
windowsのように、画面のどっかをクリックしてメニューを消す、ということができないので、かわりにtarget付きリンクを設定している要素にかぶせるように、まったく同じ名前のリンクを上からかぶし、その部分にはなにもtargetしていないリンクにしておくことで、同じ場所をクリックするとメニューが隠れる、という仕組み。

サンプルを見てもらうとわかるけど、「▼」のようなものを使って、そこをクリックすると開閉しますよ、ってことを明示しておくと分かりやすいと思う。

これを作ってて、ちょっとメニュー以外にも使えそうだな、と思ったので次回のエントリーはそれを書こうと思います。

▼CSSソース

トラックバックURL

http://css-eblog.com/cgi-bin/mt/mt-tb.cgi/62

コメントを投稿





承認されるまでコメントは表示されません。しばらくお待まちください。