CSSだけのメニュー

概要

はてなの人気記事というところに、CSSだけで作れるメニューというネタが掲載されていた。ただしIECSSだけでは無理なので、Gecko系系とOpera7以上ならCSSだけで可、という事らしい。
http://gigazine.net/index.php?/news/comments/20060728_purecss/
一応最小構成にまとめたのを置いてみた。著作権が怪しいので9月頃には削除するかも。
http://tsuge.astgate.biz/blog/cssmenu.html

要約

肝は、この二つ。

ul.makeMenu li > ul {
  display: none;
ul.makeMenu li:hover > ul {
  display: block;
}

ま、liをはじめは隠しておいて、li:hoverでdisplayを操作しているという事。
他はブロック要素、absolute、relativeの関係がわかれば問題なく理解出来ると思われる。

補足

CSSToShowとCSStoHighlightとCSStoHighLinkはIE絡みなので無視してよし。
ul.makeMenu li aを、ブロック要素でwidth:100%指定をしているのは、li要素自体がリンクのように動作しているので、liがクリックされたらaをクリックしないと不自然になってしまう点の対応だと思われる。
意外な使い道があるかもしれないな。