
Originally Posted by
mgason
1. top: -0.1em;
how does this work, it moves the sub-sub menu ul up a whole li?
How can I get the sub-sub menus to line up perfectly as I am using borders? I can't just remove that I discovered.
Use top:-1px and the lists will line up exactly.
Code:
#nav li ul ul {
border-top:1px solid #fff;
position: absolute;
left:100%;
top: -1px;
margin-left:-999em;
}
You could use opacity on the dropdowns to get a rollover effect (can't do the top level though so I just gave the top level an underline).
Code:
html, body {
margin:0;
padding:0;
background-color:#fff;/*#577182;*/
}
body {
font-family:Arial, Helvetica, sans-serif;
font-size:100%;
}
#navbar {
height:3em;
width:950px;
margin: 50px auto;
border:1px solid #fff;
background:url(http://gasolicious.com/menu_question/images/menu_bar_streak_400_reflect2.jpg);
-moz-box-shadow: 10px 10px 10px #999;
-webkit-box-shadow:10px 10px 10px #999;
box-shadow:10px 10px 10px #999;
}
#nav, #nav ul {
position: absolute;
margin: 0;
padding: 0;
list-style: none;
}
#nav ul {
margin:0;
-moz-box-shadow: 10px 10px 10px #999;
-webkit-box-shadow:10px 10px 10px #999;
box-shadow:10px 10px 10px #999;
}
ul#nav li {
position: relative;
float: left;/*width:237px;*/
}
#nav li ul {
position: absolute;
left: 0;
top: 3em;
margin-left:-999em;
}
#nav li li {
width:200px;
border-right:1px solid #fff;
border-bottom:1px solid #fff;
border-left:1px solid #fff;
clear:left;
}
#nav li ul ul {
border-top:1px solid #fff;
position: absolute;
left:100%;
top: -1px;
margin-left:-999em;
}
/* Styles for Menu Items */
#nav li a {
line-height:3em;
display: block;
text-decoration: none;
background:url(http://gasolicious.com/menu_question/images/menu_bar_streak_400_reflect2.jpg) repeat fixed 50% 50px; /* IE6 likes a background here */
color: #fff;
padding: 0 20px;
font-weight:bold;
zoom:1.0;
}
* html #nav li a {float:left}
* html #nav li li a {float:none}
#nav li:hover a,#nav li.over a{text-decoration:underline;}
/* this sets all hovered lists */
#nav li:hover li:hover a, #nav li.over li.over a, #nav li:hover li:hover li:hover a, #nav li.over li.over li.over a, #nav li:hover li a:hover, #nav li.over li a:hover, #nav li:hover li:hover li:hover a:hover, #nav li.over li li a:hover, #nav li:hover li:hover li:hover li:hover a:hover, #nav li.over li.over li.over li.over a:hover {
color: #fff; /*background-color: red;*/
opacity:.5;
filter:Alpha(Opacity=50);
}
/* set dropdown to default */
#nav li:hover li a, #nav li.over li a, #nav li:hover li:hover li a, #nav li.over li.over li a, #nav li:hover li:hover li:hover li a, #nav li.over li.over li.over li a {
color: #fff; /*background: #fffccc;*/
opacity:1.0;
filter:Alpha(Opacity=100);
text-decoration:none;
}
#nav li ul li a {
padding: 0 30px;
} /* Sub Menu Styles */
ul#nav li:hover ul ul, ul#nav li:hover ul ul ul, ul#nav li.over ul ul, ul#nav li.over ul ul ul {
margin-left:-999em;
}
ul#nav li:hover ul, ul#nav li li:hover ul, ul#nav li li li:hover ul, u#navl li li li li:hover ul, ul#nav li.over ul, ul#nav li li.over ul, ul#nav li li li.over ul {
margin-left:0;
}
3. How does this work in older browsers, does this all work? (well not the shadow I know, but thats fine).
Your version isn't working in IE6 but I've added some fixes for you in that snippet I just posted. IE6 stretches widthless floats to 100% wide unless you float the inner element also.
IE6 will just get a repeated background although it should be quite usable.
Bookmarks