I have a navigation bar that is a list with multiple li naturally. On hover of the li elements I have a div that appears, works alright, but the div seems to be only the width of the li, I tried setting the width of the div to 985px but that pushes all the other li in the nav bar very far over.
<li>
<a id="test" href="#">TEST</a>
<div id="divo" style="height:200px; width:985px; float:left;" class="zebraHover"></div>
</li>
<li><a href="#">Contact Us</a></li>
This example I have the width already set, without the width set it works fine, but this code, which allows the div to remain visible when still on the div only works in a very small area (the width of the li)
$('#divo').hover(function() {
$('#divo').toggleClass('zebraHover');
});
zebraHover just toggles display:none;
EDIT more code!
<ul id="nav">
<li class="current"><a href="">Home</a></li>
<li>
<a id="test" href="#">TEST</a>
<div id="divo" style="height:200px; width:985px; float:left;" class="zebraHover"></div>
</li>
<li><a href="#">Contact Us</a></li>
CSS:
/**********NAV*************/
a {
color: #333;
}
#nav {
margin: 0;
padding: 7px 6px 0;
background: #000 url(images/gradient.png) repeat-x 0 -110px;
line-height: 100%;
-webkit-box-shadow: 0 1px 3px rgba(0,0,0, .4);
-moz-box-shadow: 0 1px 3px rgba(0,0,0, .4);
}
#nav li {
margin: 0 5px;
padding: 0 0 8px;
float: left;
position: relative;
list-style: none;
}
/* main level link */
#nav a {
font-weight: bold;
color: #e7e5e5;
text-decoration: none;
display: block;
padding: 8px 20px;
margin: 0;
-webkit-border-radius: 1.6em;
-moz-border-radius: 1.6em;
text-shadow: 0 1px 1px rgba(0,0,0, .3);
}
#nav a:hover {
background: #000;
color: #fff;
}
#divo
{
background-color:Black;}
/* main level link hover */
#nav li:hover > a {
background: #666 url(images/gradient.png) repeat-x 0 -40px;
color: #444;
border-top: solid 1px #f8f8f8;
-webkit-box-shadow: 0 1px 1px rgba(0,0,0, .2);
-moz-box-shadow: 0 1px 1px rgba(0,0,0, .2);
box-shadow: 0 1px 1px rgba(0,0,0, .2);
text-shadow: 0 1px 0 rgba(255,255,255, 1);
}
#nav .current a
{
color:#ff0;
}
/* sub levels link hover */
#nav ul li:hover a, #nav li:hover li a {
background: none;
border: none;
color: #666;
-webkit-box-shadow: none;
-moz-box-shadow: none;
}
#nav ul a:hover {
background: #0078ff url(images/gradient.png) repeat-x 0 -100px !important;
color: #fff !important;
-webkit-border-radius: 0;
-moz-border-radius: 0;
text-shadow: 0 1px 1px rgba(0,0,0, .1);
}
/* dropdown */
#nav li:hover > ul {
display: block;
}
/* level 2 list */
#nav ul {
display: none;
margin: 0;
padding: 0;
width: 185px;
position: absolute;
top: 35px;
left: 0;
background: #ddd url(images/gradient.png) repeat-x 0 0;
border: solid 1px #b4b4b4;
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
border-radius: 10px;
-webkit-box-shadow: 0 1px 3px rgba(0,0,0, .3);
-moz-box-shadow: 0 1px 3px rgba(0,0,0, .3);
box-shadow: 0 1px 3px rgba(0,0,0, .3);
}
#nav ul li {
float: none;
margin: 0;
padding: 0;
}
#nav ul a {
font-weight: normal;
text-shadow: 0 1px 0 #fff;
}
/* level 3+ list */
#nav ul ul {
left: 181px;
top: -3px;
}
/* rounded corners of first and last link */
#nav ul li:first-child > a {
-webkit-border-top-left-radius: 9px;
-moz-border-radius-topleft: 9px;
-webkit-border-top-right-radius: 9px;
-moz-border-radius-topright: 9px;
}
#nav ul li:last-child > a {
-webkit-border-bottom-left-radius: 9px;
-moz-border-radius-bottomleft: 9px;
-webkit-border-bottom-right-radius: 9px;
-moz-border-radius-bottomright: 9px;
}
/* clearfix */
#nav:after {
content: ".";
display: block;
clear: both;
visibility: hidden;
line-height: 0;
height: 0;
}
#nav {
display: inline-block;
}
html[xmlns] #nav {
display: block;
}
* html #nav {
height: 1%;
}
.zebraHover
{
display:none;
}
.overflow
{
display: inline;
overflow: visible;
}
Something like TSN.com how you hover over MLB and a div pops underneath but does not interfere with the other list items
Use
overflow: visibleon the container (<li>) and then apply the width on the child (<div>).EDIT: Updated example to show for multiple list items.
NOTE THAT I FORGOT: You need to have a fixed width on the list items as well, otherwise it will push them when they appear. (see the example)
Working example to visualize my point