Webmonkeyより、CSSだけで作るドロップダウンメニューの紹介です。
Webmonkeyのコメントより、CSSだけで作るドロップダウンメニューは、以前と比べて作成は簡単になったとのことです。
以下、CSSとXHTMLのソースだけで、たしかに簡単に設置できます。
XHTML
<ul id="nav">
<li><a href="">Home</a></li>
<li><a href="">Web</a>
<ul>
<li><a href="">Browser</a></li>
<li><a href="">Search</a></li>
</ul>
</li>
<li><a href="">Monkey</a>
<ul>
<li><a href="">Eating Banana</a></li>
<li><a href="">Throwing Poop</a></li>
</ul>
</li>
<li><a href="">Contact</a>
<ul>
<li><a href="">Via Web</a></li>
<li><a href="">Via Phone</a></li>
<li><a href="">Via tin can and string</a></li>
</ul>
</li>
</ul>
CSS
ul {
margin: 0;
padding: 0;
list-style: none;
}
ul li {
position: relative;
float: left;
width: 100px;
}
li ul {
position: absolute;
top: 30px;
display: none;
}
ul li a {
display: block;
text-decoration: none;
line-height: 20px;
color: #000;
padding: 5px;
background: #CC0;
margin: 0 2px;
}
ul li a:hover { background: #66F; }
li:hover ul, li.over ul { display: block; }
以下、ブラウザで動作確認しました。
- Firefox3
- IE7
- Opera9.5
- Safari3.1
しかし、IE6で動作させるためには、JavaScriptを使う必要があります。
よって、IE6で動かすためには、以下のJavaScriptを設置する必要があります。
JavaScript
startList = function() {
if (document.all&&document.getElementById) {
navRoot = document.getElementById("nav");
for (i=0; i<navRoot.childNodes.length; i++) {
node = navRoot.childNodes[i];
if (node.nodeName=="LI") {
node.onmouseover=function() {
this.className+=" over";
}
node.onmouseout=function() {
this.className=this.className.replace(" over", "");
}
}
}
}
}
window.onload=startList;
こういったドロップダウンメニューは、よくAjaxやJavascriptで作られますが、CSSだけでの作成は、アクセシビリティにおいても良いと思いますので、こういった技術は多いに賛同できます。















コメントする