How to make menu by pure CSS
I was asked to find a solution for making a horizontal dropdown menu in HTML. I don't know how to do it but I'm sure it is possible especially in Firefox. After searching in Google, I found a good tutorial.
I just need to use CSS as follows.
#menu { width: 100%; background: #eee; float: left; } #menu ul { list-style: none; margin: 0; padding: 0; width: 12em; float: left; } #menu a, #menu h2 { font: bold 11px/16px arial, helvetica, sans-serif; display: block; border-width: 1px; border-style: solid; border-color: #ccc #888 #555 #bbb; margin: 0; padding: 2px 3px; } #menu h2 { color: #fff; background: #000; text-transform: uppercase; } #menu a { color: #000; background: #efefef; text-decoration: none; } #menu a:hover { color: #a00; background: #fff; } #menu li {position: relative;} #menu ul ul { position: absolute; z-index: 500; } #menu ul ul ul { position: absolute; top: 0; left: 100%; } div#menu ul ul { display: none; } div#menu ul ul, div#menu ul li:hover ul ul, div#menu ul ul li:hover ul ul {display: none;} div#menu ul li:hover ul, div#menu ul ul li:hover ul, div#menu ul ul ul li:hover ul {display: block;}
And then format the menu as follows.
<div id="menu">
<ul>
<li><h2>Menu 1</h2>
<ul>
<li><a href="#link1-1">Link 1-1</a>
<ul>
<li><a href="#link1-1-1">Link 1-1-1</a></li>
<li><a href="#link1-1-2">Link 1-1-2</a></li>
<li><a href="#link1-1-3">Link 1-1-3</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li><h2>Menu 2</h2>
<ul>
<li><a href="#link2-1">Link 2-1</a></li>
<li><a href="#link2-2">Link 2-2</a>
<ul>
<li><a href="#link2-3-1">Link 2-3-1</a>
<ul>
<li><a href="#link2-3-1-1">Link 2-3-1-1</a></li>
<li><a href="#link2-3-1-2">Link 2-3-1-2</a></li>
<li><a href="#link2-3-1-3">Link 2-3-1-3</a></li>
<li><a href="#link2-3-1-4">Link 2-3-1-4</a></li>
<li><a href="#link2-3-1-5">Link 2-3-1-5</a></li>
<li><a href="#link2-3-1-6">Link 2-3-1-6</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
However, above CSS does not work correctly in IE6 and older. I need special style as follows.
<!--[if IE]>
<style type="text/css" media="screen">
body {
behavior: url(csshover.htc);
font-size: 100%;
}
#menu ul li {float: left; width: 100%;}
#menu ul li a {height: 1%;}
#menu a, #menu h2 {
font: bold 0.7em/1.4em arial, helvetica, sans-serif;
}
</style>
<![endif]-->
In addition, you need csshover.htc from whatever:hover.
- sugree's blog
- 3832 reads

Post new comment