I really believe you’ve completely over-thought the solution to your issue here… You’ve got div for no reason, multiple classes for no reason (big tip, if every element inside a container is getting the same class, NONE of them need classes), and a whole slew of unnecessary/redundant CSS – mind you, pure CSS menus are by definition filled with redundancies, but still…
You’ve also got conflicting metrics in there… px paddings, pt fonts, em heights by inheritance… it’s just asking for it to fail.
Try this on for size:
screen.css
/* null margins and padding to give good cross-browser baseline */
html,body,address,blockquote,div,
form,fieldset,caption,
h1,h2,h3,h4,h5,h6,
hr,ul,li,ol,ul,
table,tr,td,th,p,img {
margin:0;
padding:0;
}
img,fieldset {
border:none;
}
body {
font:normal 85%/150% arial,helvetica,sans-serif;
}
#navList {
list-style:none;
position:relative;
height:2.5em;
font-weight:bold;
}
#navList li {
position:relative;
float:left;
zoom:1;
overflow:hidden;
}
#navList a {
display:block;
zoom:1;
padding:0.5em 1em;
text-decoration: none;
color:#977082;
background:#FFF;
}
/*
It sucks to have to repeat the colors like this, but it keeps
the inheritance of the menu in proper order
*/
#navList li:hover a {
color:#F172A7;
background:#999;
}
#navList li a.current {
color:#000;
}
#navList li:hover li a {
color:#977082;
background:#FFF;
}
#navList li:hover li .current {
color:#000;
}
#navList li li:hover a {
color:#F172A7;
background:#999;
}
#navList li li a {
border:solid #777;
border-width:0 2px 2px 0;
}
#navList li ul {
position:absolute;
top:2.5em;
width:12em;
border:solid #777;
border-width:2px 0 0 2px;
}
#navList li ul ul {
top:0;
left:12em;
}
#navList li:hover {
overflow:visible;
}
#navList li li {
float:none;
}
template.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml"
lang="en"
xml:lang="en"
><head>
<meta
http-equiv="Content-Type"
content="text/html; charset=utf-8"
/>
<link
type="text/css"
rel="stylesheet"
href="screen.css"
media="screen,projection,tv"
/>
<title>
Menu Demo
</title>
</head><body>
<ul id="navList">
<li>
<a href="/shop-online" class="current">SHOP</a>
<ul>
<li><a class="current" href="#">prod1</a></li>
<li><a href="#">prod1</a></li>
<li><a href="#">prod1</a></li>
<li><a href="#">prod1</a></li>
<li><a href="#">prod1</a></li>
<li><a href="#">prod1</a></li>
<li><a href="#">prod1</a></li>
<li><a href="#">prod1</a></li>
<li><a href="#">prod1</a></li>
</ul>
</li>
<li>
<a href="/lookbook">SECOND</a>
<ul>
<li><a href="#">prod1</a></li>
<li><a href="#">prod1</a></li>
</ul>
</li>
<li><a href="#">THIRD</a></li>
<li><a href="#">FOURTH</a></li>
</ul>
</body></html>
Should work just fine all the way back to IE7, and has a pretty good chance of working in IE6 (untested) if you throw Peterned’s CSShover3.htc at it.