2006/07/30

CSS dynamic menu

最近JavaScriptを使っているとしか思えないような動的なコンテンツをCSSだけで実装するようなハックをよく目にしますが、こちらのサンプルを見てやっとわかりました。 Pure CSS menus:How To Create ものすごい簡略化するとこういうことみたいです。
<html>  <head>   <style>    /* 普段の子要素はnone */    DIV.target > DIV {     display:none;    }    /* hoverされた時の子要素はblock */    DIV.target:hover > DIV {     display:block;    }   </style>  </head>  <body>   <div class="target">    親要素    <div>     子要素    </div>   </div>  </body> </html>
"DIV.target:hover > DIV" こういう指定が出来たんですね。 ついでにbefore,contentも指定したら、 閉じている時に親要素の前に+、開いている時に親要素の前に-、 とかを表示してエクスプローラ風に記号をつけることもできました。
<html>  <head>   <style>    /* 普段の子要素はnone */    DIV.target > DIV {     display:none;    }    /* hoverされた時の子要素はblock */    DIV.target:hover > DIV {     display:block;    }    /* 普段の親要素は頭に"+" */    DIV.target:before {     content:"+";    }    /* hoverされた時の親要素は頭に"-" */    DIV.target:hover:before {     content:"-";    }   </style>  </head>  <body>   <div class="target">    親要素    <div>子要素</div>   </div>  </body> </html>