How to Build a Kick-Butt CSS3 Mega Drop-Down Menu

How to Build a Kick-Butt CSS3 Mega Drop-Down Menu

Tutorial Details
  • Topic: HTML / CSS3
  • Difficulty: Moderate
  • Estimated Completion Time: 30 min

Final Product What You'll Be Creating

This entry is part 16 of 16 in the CSS3 Mastery Session
« Previous

Often used on e-commerce or large scale websites, mega menus are becoming more and more popular, as they offer an effective solution to displaying a lot of content while keeping a clean layout. In this tutorial, we’ll learn how to build a cross-browser, awesome CSS-only drop-down mega menu, using nice CSS3 features.


Step 1: Building the Navigation Bar

Let’s begin with a basic menu, built with an unordered list and some basic CSS styling.

<ul id="menu">
    <li><a href="#">Home</a></li>
    <li><a href="#">About</a></li>
    <li><a href="#">Services</a></li>
    <li><a href="#">Portfolio</a></li>
    <li><a href="#">Contact</a></li>
</ul>

Creating the Menu Container

We’ll now apply some basic CSS styling. For the menu container, we define a fixed width that we center by setting the left and right margins to “auto”.

#menu {
	list-style:none;
	width:940px;
	margin:30px auto 0px auto;
	height:43px;
	padding:0px 20px 0px 20px;
}

Now, let’s see how we can improve it with some CSS3 features. We need to use different syntaxes for Webkit-based browsers (like Safari) and for Mozilla-based browsers (like Firefox).

For rounded corners, the syntax will be :

-moz-border-radius: 10px
-webkit-border-radius: 10px;
border-radius: 10px;

For the background, we’ll use gradients and a fallback color for older browsers. To keep consistency when choosing colors, there is an awesome tool called Facade that helps you find lighter and darker tones of a basic color.

background: #014464;
background: -moz-linear-gradient(top, #0272a7, #013953);
background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#0272a7), to(#013953));

The first line applies a simple background color (for older browsers); the second and third lines create a gradient from the top to the bottom using two colors : #0272a7 and #013953.

We can now add a darker border and polish the design with a “fake” inset border created with the “box-shadow” feature. The syntax is the same for all compatible browsers: the first value is the horizontal offset, the second one is the vertical offset, the third one is the blur radius (a small value makes it sharper; it will be 1 pixel in our example). We set all offsets to 0 so the blur value will create a uniform light border :

-moz-box-shadow:inset 0px 0px 1px #edf9ff;
-webkit-box-shadow:inset 0px 0px 1px #edf9ff;
box-shadow:inset 0px 0px 1px #edf9ff;

Here’s the final CSS code for the #menu container :

#menu {
	list-style:none;
	width:940px;
	margin:30px auto 0px auto;
	height:43px;
	padding:0px 20px 0px 20px;

	/* Rounded Corners */
	
	-moz-border-radius: 10px;
	-webkit-border-radius: 10px;
	border-radius: 10px;

	/* Background color and gradients */
	
	background: #014464;
	background: -moz-linear-gradient(top, #0272a7, #013953);
	background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#0272a7), to(#013953));
	
	/* Borders */
	
	border: 1px solid #002232;

	-moz-box-shadow:inset 0px 0px 1px #edf9ff;
	-webkit-box-shadow:inset 0px 0px 1px #edf9ff;
	box-shadow:inset 0px 0px 1px #edf9ff;
}

Styling Menu Items

We will begin with all menu items aligned to the left and space them with a margin-right (the padding will be necessary for the hover state) :

#menu li {
	float:left;
	display:block;
	text-align:center;
	position:relative;
	padding: 4px 10px 4px 10px;
	margin-right:30px;
	margin-top:7px;
	border:none;
}

For the hover state and the drop down, I have chosen a grey color scheme for the background.

The fallback color will be a light grey (#F4F4F4) and the gradient will be applied from the top (#F4F4F4) to the bottom (#EEEEEE). Rounded corners will be applied only on top corners as we’ll have the drop down sticking right under the menu items.

background: #F4F4F4;
background: -moz-linear-gradient(top, #F4F4F4, #EEEEEE);
background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#F4F4F4), to(#EEEEEE));

The left and right padding is slightly smaller here because we have a border of 1 pixel appearing on hover. If we keep the same padding, menu items will be pushed two pixels on the right because of the left and right borders added on mouse hover. To avoid that, we’ll remove 1 pixel of padding on both sides, so we have 9 pixels instead of 10.

border: 1px solid #777777;
padding: 4px 9px 4px 9px;

Then, we add rounded corners to the top only so the drop down will stick perfectly under the parent menu item :

-moz-border-radius: 5px 5px 0px 0px;
-webkit-border-radius: 5px 5px 0px 0px;
border-radius: 5px 5px 0px 0px;

Here is the final CSS for the menu items on hover :

#menu li:hover {
	border: 1px solid #777777;
	padding: 4px 9px 4px 9px;
	
	/* Background color and gradients */
	
	background: #F4F4F4;
	background: -moz-linear-gradient(top, #F4F4F4, #EEEEEE);
	background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#F4F4F4), to(#EEEEEE));
	
	/* Rounded corners */
	
	-moz-border-radius: 5px 5px 0px 0px;
	-webkit-border-radius: 5px 5px 0px 0px;
	border-radius: 5px 5px 0px 0px;
}

For the links, we’ll apply a nice text shadow using a simple syntax : the first and second values are horizontal and vertical offsets for the shadow (1 pixel in our example), the third one is the blur (1 pixel too) and then we have the (black) color :

text-shadow: 1px 1px 1px #000;

Here is the final CSS for the links :

#menu li a {
	font-family:Arial, Helvetica, sans-serif;
	font-size:14px; 
	color: #EEEEEE;
	display:block;
	outline:0;
	text-decoration:none;
	text-shadow: 1px 1px 1px #000;
}

On mouse hover, as the background is grey, we’ll use a darker color (#161616) for the links and the white color for the text shadow :

#menu li:hover a {
	color:#161616;
	text-shadow: 1px 1px 1px #FFFFFF;
}

Finally, we need a way to indicate if there’s a drop down or not by using a simple arrow image as background, it will be positioned on the right using padding and the top margin will align to it properly. On hover this top margin will be set to 7 pixels instead of 8 as we have an additional border appearing on mouse hover (otherwise, the arrow would be pushed 1 pixel down on hover) :

#menu li .drop {
	padding-right:21px;
	background:url("img/drop.png") no-repeat right 8px;
}
#menu li:hover .drop {
	background:url("img/drop.png") no-repeat right 7px;
}

Here is our final code for the menu container and links; only the “home” item doesn’t have any drop down content for now :

<ul id="menu">
	<li><a href="#">Home</a></li>
	<li><a href="#" class="drop">About</a></li>
	<li><a href="#" class="drop">Services</a></li>
	<li><a href="#" class="drop">Portfolio</a></li>
	<li><a href="#" class="drop">Contact</a></li>
</ul>
#menu {
	list-style:none;
	width:940px;
	margin:30px auto 0px auto;
	height:43px;
	padding:0px 20px 0px 20px;

	/* Rounded Corners */
	
	-moz-border-radius: 10px;
	-webkit-border-radius: 10px;
	border-radius: 10px;

	/* Background color and gradients */
	
	background: #014464;
	background: -moz-linear-gradient(top, #0272a7, #013953);
	background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#0272a7), to(#013953));
	
	/* Borders */
	
	border: 1px solid #002232;

	-moz-box-shadow:inset 0px 0px 1px #edf9ff;
	-webkit-box-shadow:inset 0px 0px 1px #edf9ff;
	box-shadow:inset 0px 0px 1px #edf9ff;
}

#menu li {
	float:left;
	display:block;
	text-align:center;
	position:relative;
	padding: 4px 10px 4px 10px;
	margin-right:30px;
	margin-top:7px;
	border:none;
}

#menu li:hover {
	border: 1px solid #777777;
	padding: 4px 9px 4px 9px;
	
	/* Background color and gradients */
	
	background: #F4F4F4;
	background: -moz-linear-gradient(top, #F4F4F4, #EEEEEE);
	background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#F4F4F4), to(#EEEEEE));
	
	/* Rounded corners */
	
	-moz-border-radius: 5px 5px 0px 0px;
	-webkit-border-radius: 5px 5px 0px 0px;
	border-radius: 5px 5px 0px 0px;
}

#menu li a {
	font-family:Arial, Helvetica, sans-serif;
	font-size:14px; 
	color: #EEEEEE;
	display:block;
	outline:0;
	text-decoration:none;
	text-shadow: 1px 1px 1px #000;
}

#menu li:hover a {
	color:#161616;
	text-shadow: 1px 1px 1px #FFFFFF;
}
#menu li .drop {
	padding-right:21px;
	background:url("img/drop.png") no-repeat right 8px;
}
#menu li:hover .drop {
	background:url("img/drop.png") no-repeat right 7px;
}

And the result is :

Building a CSS3 Mega Drop Down Menu

Step 2: Coding the Drop Down

A “classic” drop down menu usually contains lists nested within parent list items and looks like:

<ul id="menu">
	<li><a href="#">Item 1</a><
		<ul>
			<li><a href="#">Subitem 1</a></li>
			<li><a href="#">Subitem 2</a></li>
			<li><a href="#">Subitem 3</a></li>
		</ul>
	</li>
	<li><a href="#">Item 2</a><
		<ul>
			<li><a href="#">Subitem 1</a></li>
			<li><a href="#">Subitem 2</a></li>
		</ul>
	</li>
</ul>

General Structure

For our Mega Menu, instead of nested lists, we’ll simply use standard DIVs, which will work like any nested list :

<ul id="menu">
	<li><a href="#">Item 1</a>
		<div>
		Drop down Content
		<div>
	</li>
	<li><a href="#">Item 2</a>
		<div>
		Drop down Content
		<div>
	</li>
</ul>

This will be the basic structure for the drop down. The idea behind it is to be able to include any kind of content, such as paragraphs, images, custom lists or a contact form, organized into columns.

Drop Down Containers

Containers with different sizes will hold the entire drop down content. I’ve chosen the tag names according to the number of columns they will contain.

To hide the drop downs, we’ll use absolute positioning with a negative left margin :

position:absolute;
left:-999em;

The background fallback color is the same as the one used for the menu items. Modern browsers will display a gradient starting with #EEEEEE at the top (to match the parent menu item gradient) and ending with #BBBBBB at the bottom:

background:#F4F4F4;
background: -moz-linear-gradient(top, #EEEEEE, #BBBBBB);
background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#EEEEEE), to(#BBBBBB));

We’ll again use rounded corners, except for the top left one :

-moz-border-radius: 0px 5px 5px 5px;
-webkit-border-radius: 0px 5px 5px 5px;
border-radius: 0px 5px 5px 5px;
.dropdown_1column, 
.dropdown_2columns, 
.dropdown_3columns, 
.dropdown_4columns,
.dropdown_5columns {
	margin:4px auto;
	position:absolute;
	left:-999em; /* Hides the drop down */
	text-align:left;
	padding:10px 5px 10px 5px;
	border:1px solid #777777;
	border-top:none;
	
	/* Gradient background */
	background:#F4F4F4;
	background: -moz-linear-gradient(top, #EEEEEE, #BBBBBB);
	background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#EEEEEE), to(#BBBBBB));

	/* Rounded Corners */
	-moz-border-radius: 0px 5px 5px 5px;
	-webkit-border-radius: 0px 5px 5px 5px;
	border-radius: 0px 5px 5px 5px;
}

To illustrate this, let’s see how it would look if we hadn’t paid attention to detail:

Building a CSS3 Mega Drop Down Menu

Now here is our example:

Building a CSS3 Mega Drop Down Menu

As you can see, the drop down sticks nicely to its parent menu item.

In order to have a perfect drop down container, we need to specify the width for each one :

.dropdown_1column {width: 140px;}
.dropdown_2columns {width: 280px;}
.dropdown_3columns {width: 420px;}
.dropdown_4columns {width: 560px;}
.dropdown_5columns {width: 700px;}

And to show the drop downs on mouse hover, we’ll simply use :

#menu li:hover .dropdown_1column, 
#menu li:hover .dropdown_2columns, 
#menu li:hover .dropdown_3columns,
#menu li:hover .dropdown_4columns,
#menu li:hover .dropdown_5columns {
	left:-1px;top:auto;
}

Using the Drop Down Containers

Our classes are ready to be included in our menu. We’ll use each one of them starting from the 5-column, layout to the single column drop down :

<ul id="menu">
	<li><a href="#">Home</a></li>
	<li><a href="#" class="drop">5 Columns</a>
		<div class="dropdown_5columns">
		<p>5 Columns content</p>
		</div>
	</li>
	<li><a href="#" class="drop">4 Columns</a>
		<div class="dropdown_4columns">
		<p>4 Columns content</p>
		</div>
	</li>
	<li><a href="#" class="drop">3 Columns</a>
		<div class="dropdown_3columns">
		<p>3 Columns content</p>
		</div>
	</li>
	<li><a href="#" class="drop">2 Columns</a>
		<div class="dropdown_2columns">
		<p>2 Columns content</p>
		</div>
	</li>
	<li><a href="#" class="drop">1 Column</a>
		<div class="dropdown_1column">
		<p>1 Column content</p>
		</div>
	</li>
</ul>

Here is a preview of the code above :

Building a CSS3 Mega Drop Down Menu

Step 3: Creating the Drop Down Container Columns

Now that we have the containers ready, we’ll create columns of increasing sizes, following the principles of the 960 grid system.

.col_1,
.col_2,
.col_3,
.col_4,
.col_5 {
	display:inline;
	float: left;
	position: relative;
	margin-left: 5px;
	margin-right: 5px;
}
.col_1 {width:130px;}
.col_2 {width:270px;}
.col_3 {width:410px;}
.col_4 {width:550px;}
.col_5 {width:690px;}

Using Columns

Here is an example of a drop down containing several columns. In this example, we have different combinations using all kinds of columns :

<ul id="menu">
	<li><a href="#" class="drop">5 Columns</a>
		<div class="dropdown_5columns">
			<div class="col_5">
			<p>This is a 5 Columns content</p>
			</div>
			<div class="col_1">
			<p>This is a 1 Column content</p>
			</div>
			<div class="col_1">
			<p>This is a 1 Column content</p>
			</div>
			<div class="col_1">
			<p>This is a 1 Column content</p>
			</div>
			<div class="col_1">
			<p>This is a 1 Column content</p>
			</div>
			<div class="col_1">
			<p>This is a 1 Column content</p>
			</div>
			<div class="col_4">
			<p>This is a 4 Columns content</p>
			</div>
			<div class="col_1">
			<p>This is a 1 Column content</p>
			</div>
			<div class="col_3">
			<p>This is a 3 Columns content</p>
			</div>
			<div class="col_2">
			<p>This is a 2 Columns content</p>
			</div>
		</div>
	</li>
</ul>

Code preview :

Building a CSS3 Mega Drop Down Menu

Step 4: Aligning to the Right

Now, let’s see how we can align our menu and the drop down content to the right edge of the navigation bar; not only the menu item, but the drop down container should also be changed.

To accomplish this, we’ll add a new class called .menu_right to the parent list item, so we reset the right margin and float it to the right :

#menu .menu_right {
	float:right;
	margin-right:0px;
}

Next, let’s see the drop down. In the previous CSS code, rounded corners were applied to all corners except the left-top one to, in order to match the background of the parent menu item. Now we want this drop down to stick to the right edge of the parent menu item. So, we’ll overwrite the border-radius values with a new class called .align_right, and set the top-right corner to 0.

#menu li .align_right {
	/* Rounded Corners */
	-moz-border-radius: 5px 0px 5px 5px;
	-webkit-border-radius: 5px 0px 5px 5px;
	border-radius: 5px 0px 5px 5px;
}

Last but not least, we want to make the drop down appear on the right; so we’ll use our new class and reset the left value, then make it stick to the right :

#menu li:hover .align_right {
	left:auto;
	right:-1px;
	top:auto;
}

Now it’s ready to be used in the menu :

<li class="menu_right"><a href="#" class="drop">Right</a>
	<div class="dropdown_1column align_right">
		<div class="col_1">
		<p>This is a 1 Column content</p>
		</div>
	</div>
</li>

And a small preview of the code above :

Building a CSS3 Mega Drop Down Menu

Step 5: Adding and Styling Content

Now that we have the whole structure ready, we can add as much content as we want: text, lists, images, etc.

General Stylings

Let’s begin with some basic styling for paragraphs and headings :

#menu p, #menu h2, #menu h3, #menu ul li {
	font-family:Arial, Helvetica, sans-serif;
	line-height:21px;
	font-size:12px;
	text-align:left;
	text-shadow: 1px 1px 1px #FFFFFF;
}
#menu h2 {
	font-size:21px;
	font-weight:400;
	letter-spacing:-1px;
	margin:7px 0 14px 0;
	padding-bottom:14px;
	border-bottom:1px solid #666666;
}
#menu h3 {
	font-size:14px;
	margin:7px 0 14px 0;
	padding-bottom:7px;
	border-bottom:1px solid #888888;
}
#menu p {
	line-height:18px;
	margin:0 0 10px 0;
}
.strong {
	font-weight:bold;
}
.italic {
	font-style:italic;
}

We can apply a nice blue color to the links within the drop down :

#menu li:hover div a {
	font-size:12px;
	color:#015b86;
}
#menu li:hover div a:hover {
	color:#029feb;
}

Lists Stylings

Let’s revamp our lists; we have to reset some styling such as the background color or the borders which are used in the navigation bar :

#menu li ul {
	list-style:none;
	padding:0;
	margin:0 0 12px 0;
}
#menu li ul li {
	font-size:12px;
	line-height:24px;
	position:relative;
	text-shadow: 1px 1px 1px #ffffff;
	padding:0;
	margin:0;
	float:none;
	text-align:left;
	width:130px;
}
#menu li ul li:hover {
	background:none;
	border:none;
	padding:0;
	margin:0;
}

Styling Images

.imgshadow {
	background:#FFFFFF;
	padding:4px;
	border:1px solid #777777;
	margin-top:5px;
	-moz-box-shadow:0px 0px 5px #666666;
	-webkit-box-shadow:0px 0px 5px #666666;
	box-shadow:0px 0px 5px #666666;
}

And to create a paragraph with an image on the left :

.img_left {
	width:auto;
	float:left;
	margin:5px 15px 5px 5px;
}

Text Boxes

To highlight some content, here is an example of a dark box with rounded corners and a subtle inset shadow :

#menu li .black_box {
	background-color:#333333;
	color: #eeeeee;
	text-shadow: 1px 1px 1px #000;
	padding:4px 6px 4px 6px;

	/* Rounded Corners */
	-moz-border-radius: 5px;
	-webkit-border-radius: 5px;
	border-radius: 5px;

	/* Shadow */
	-webkit-box-shadow:inset 0 0 3px #000000;
	-moz-box-shadow:inset 0 0 3px #000000;
	box-shadow:inset 0 0 3px #000000;
}

Restylings Lists

And to finish, here’s another way to style your lists using, again, some CSS3 :

#menu li .greybox li {
	background:#F4F4F4;
	border:1px solid #bbbbbb;
	margin:0px 0px 4px 0px;
	padding:4px 6px 4px 6px;
	width:116px;

	/* Rounded Corners */
	-moz-border-radius: 5px;
	-webkit-border-radius: 5px;
	border-radius: 5px;
}
#menu li .greybox li:hover {
	background:#ffffff;
	border:1px solid #aaaaaa;
	padding:4px 6px 4px 6px;
	margin:0px 0px 4px 0px;
}

Step 6: Handling Browser Compatibility and IE6

All browsers handle hover on non-anchor tags . . . except Internet Explorer 6; so our Mega Menu is still not working with this old browser. We can fix this problem thanks to a behavior file that will add this functionality. You can find it here, and use conditional comments to target IE6 only; more explanations can be found via this article from CSS-Tricks.

To target IE6, we’ll use the following code :

<!--[if IE 6]>
<style>
body {behavior: url("csshover3.htc");}
</style>
<![endif]-->

I’ve used a few PNG files in this tutorial, and, as everyone knows, IE6 doesn’t support transparency so we have different solutions :

  • Convert them to GIF or PNG-8 format
  • Use a script
  • Set a background color other than the default grey with TweakPNG for example

I’ll let you choose the one that fits to your needs. Now, let’s review a full working example.


Final Example

HTML Part

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<link rel="stylesheet" href="menu.css" type="text/css" media="screen" />

<title>Mega Drop Down Menu</title>
<!--[if IE 6]>
<style>
body {behavior: url("csshover3.htc");}
#menu li .drop {background:url("img/drop.gif") no-repeat right 8px; 
</style>
<![endif]-->

</head>

<body>

<ul id="menu">
    
    <li><a href="#" class="drop">Home</a><!-- Begin Home Item -->
    
        <div class="dropdown_2columns"><!-- Begin 2 columns container -->
    
            <div class="col_2">
                <h2>Welcome !</h2>
            </div>
    
            <div class="col_2">
                <p>Hi and welcome here ! This is a showcase of the possibilities of this awesome Mega Drop Down Menu.</p>             
                <p>This item comes with a large range of prepared typographic stylings such as headings, lists, etc.</p>             
            </div>
    
            <div class="col_2">
                <h2>Cross Browser Support</h2>
            </div>
            
            <div class="col_1">
                <img src="img/browsers.png" width="125" height="48" alt="" />
            </div>
            
            <div class="col_1">
                <p>This mega menu has been tested in all major browsers.</p>
            </div>
          
        </div><!-- End 2 columns container -->
    
    </li><!-- End Home Item -->

    <li><a href="#" class="drop">5 Columns</a><!-- Begin 5 columns Item -->
    
        <div class="dropdown_5columns"><!-- Begin 5 columns container -->
        
            <div class="col_5">
                <h2>This is an example of a large container with 5 columns</h2>
            </div>
            
            <div class="col_1">
                <p class="black_box">This is a dark grey box text. Fusce in metus at enim porta lacinia vitae a arcu. Sed sed lacus nulla mollis porta quis.</p>
            </div>
            
            <div class="col_1">
                <p>Phasellus vitae sapien ac leo mollis porta quis sit amet nisi. Mauris hendrerit, metus cursus accumsan tincidunt.</p>
            </div>
            
            <div class="col_1">
                <p class="italic">This is a sample of an italic text. Consequat scelerisque. Fusce sed lectus at arcu mollis accumsan at nec nisi porta quis sit amet.</p>
            </div>
            
            <div class="col_1">
                <p>Curabitur euismod gravida ante nec commodo. Nunc dolor nulla, semper in ultricies vitae, vulputate porttitor neque.</p>
            </div>
            
            <div class="col_1">
                <p class="strong">This is a sample of a bold text. Aliquam sodales nisi nec felis hendrerit ac eleifend lectus feugiat scelerisque.</p>
            </div>
        
            <div class="col_5">
                <h2>Here is some content with side images</h2>
            </div>
           
            <div class="col_3">
            
                <img src="img/01.jpg" width="70" height="70" class="img_left imgshadow" alt="" />
                <p>Maecenas eget eros lorem, nec pellentesque lacus. Aenean dui orci, rhoncus sit amet tristique eu, tristique sed odio. Praesent ut interdum elit. Sed in sem mauris. Aenean a commodo mi. Praesent augue lacus.<a href="#">Read more...</a></p>
        
                <img src="img/02.jpg" width="70" height="70" class="img_left imgshadow" alt="" />
                <p>Aliquam elementum felis quis felis consequat scelerisque. Fusce sed lectus at arcu mollis accumsan at nec nisi. Aliquam pretium mollis fringilla. Nunc in leo urna, eget varius metus. Aliquam sodales nisi.<a href="#">Read more...</a></p>
            
            </div>
            
            <div class="col_2">
            
                <p class="black_box">This is a black box, you can use it to highligh some content. Sed sed lacus nulla, et lacinia risus. Phasellus vitae sapien ac leo mollis porta quis sit amet nisi. Mauris hendrerit, metus cursus accumsan tincidunt.Quisque vestibulum nisi non nunc blandit placerat. Mauris facilisis, risus ut lobortis posuere, diam lacus congue lorem, ut condimentum ligula est vel orci. Donec interdum lacus at velit varius gravida. Nulla ipsum risus.</p>
            
            </div>
        
        </div><!-- End 5 columns container -->
    
    </li><!-- End 5 columns Item -->

    <li><a href="#" class="drop">4 Columns</a><!-- Begin 4 columns Item -->
    
        <div class="dropdown_4columns"><!-- Begin 4 columns container -->
        
            <div class="col_4">
                <h2>This is a heading title</h2>
            </div>
            
            <div class="col_1">
            
                <h3>Some Links</h3>
                <ul>
                    <li><a href="#">ThemeForest</a></li>
                    <li><a href="#">GraphicRiver</a></li>
                    <li><a href="#">ActiveDen</a></li>
                    <li><a href="#">VideoHive</a></li>
                    <li><a href="#">3DOcean</a></li>
                </ul>   
                 
            </div>
    
            <div class="col_1">
            
                <h3>Useful Links</h3>
                <ul>
                    <li><a href="#">NetTuts</a></li>
                    <li><a href="#">VectorTuts</a></li>
                    <li><a href="#">PsdTuts</a></li>
                    <li><a href="#">PhotoTuts</a></li>
                    <li><a href="#">ActiveTuts</a></li>
                </ul>   
                 
            </div>
    
            <div class="col_1">
            
                <h3>Other Stuff</h3>
                <ul>
                    <li><a href="#">FreelanceSwitch</a></li>
                    <li><a href="#">Creattica</a></li>
                    <li><a href="#">WorkAwesome</a></li>
                    <li><a href="#">Mac Apps</a></li>
                    <li><a href="#">Web Apps</a></li>
                </ul>   
                 
            </div>
    
            <div class="col_1">
            
                <h3>Misc</h3>
                <ul>
                    <li><a href="#">Design</a></li>
                    <li><a href="#">Logo</a></li>
                    <li><a href="#">Flash</a></li>
                    <li><a href="#">Illustration</a></li>
                    <li><a href="#">More...</a></li>
                </ul>   
                 
            </div>
            
        </div><!-- End 4 columns container -->
    
    </li><!-- End 4 columns Item -->

	<li class="menu_right"><a href="#" class="drop">1 Column</a>
    
		<div class="dropdown_1column align_right">
        
                <div class="col_1">
                
                    <ul class="simple">
                        <li><a href="#">FreelanceSwitch</a></li>
                        <li><a href="#">Creattica</a></li>
                        <li><a href="#">WorkAwesome</a></li>
                        <li><a href="#">Mac Apps</a></li>
                        <li><a href="#">Web Apps</a></li>
                        <li><a href="#">NetTuts</a></li>
                        <li><a href="#">VectorTuts</a></li>
                        <li><a href="#">PsdTuts</a></li>
                        <li><a href="#">PhotoTuts</a></li>
                        <li><a href="#">ActiveTuts</a></li>
                        <li><a href="#">Design</a></li>
                        <li><a href="#">Logo</a></li>
                        <li><a href="#">Flash</a></li>
                        <li><a href="#">Illustration</a></li>
                        <li><a href="#">More...</a></li>
                    </ul>   
                     
                </div>
                
		</div>
        
	</li>

    <li class="menu_right"><a href="#" class="drop">3 columns</a><!-- Begin 3 columns Item -->
    
        <div class="dropdown_3columns align_right"><!-- Begin 3 columns container -->
            
            <div class="col_3">
                <h2>Lists in Boxes</h2>
            </div>
            
            <div class="col_1">
    
                <ul class="greybox">
                    <li><a href="#">FreelanceSwitch</a></li>
                    <li><a href="#">Creattica</a></li>
                    <li><a href="#">WorkAwesome</a></li>
                    <li><a href="#">Mac Apps</a></li>
                    <li><a href="#">Web Apps</a></li>
                </ul>   
    
            </div>
            
            <div class="col_1">
    
                <ul class="greybox">
                    <li><a href="#">ThemeForest</a></li>
                    <li><a href="#">GraphicRiver</a></li>
                    <li><a href="#">ActiveDen</a></li>
                    <li><a href="#">VideoHive</a></li>
                    <li><a href="#">3DOcean</a></li>
                </ul>   
    
            </div>
            
            <div class="col_1">
    
                <ul class="greybox">
                    <li><a href="#">Design</a></li>
                    <li><a href="#">Logo</a></li>
                    <li><a href="#">Flash</a></li>
                    <li><a href="#">Illustration</a></li>
                    <li><a href="#">More...</a></li>
                </ul>   
    
            </div>
            
            <div class="col_3">
                <h2>Here are some image examples</h2>
            </div>
            
            <div class="col_3">
                <img src="img/02.jpg" width="70" height="70" class="img_left imgshadow" alt="" />
                <p>Maecenas eget eros lorem, nec pellentesque lacus. Aenean dui orci, rhoncus sit amet tristique eu, tristique sed odio. Praesent ut interdum elit. Maecenas imperdiet, nibh vitae rutrum vulputate, lorem sem condimentum.<a href="#">Read more...</a></p>
    
                <img src="img/01.jpg" width="70" height="70" class="img_left imgshadow" alt="" />
                <p>Aliquam elementum felis quis felis consequat scelerisque. Fusce sed lectus at arcu mollis accumsan at nec nisi. Aliquam pretium mollis fringilla. Vestibulum tempor facilisis malesuada. <a href="#">Read more...</a></p>
            </div>
        
        </div><!-- End 3 columns container -->
        
    </li><!-- End 3 columns Item -->
</ul>

</body>

</html>

CSS Part

body, ul, li {
	font-size:14px; 
	font-family:Arial, Helvetica, sans-serif;
	line-height:21px;
	text-align:left;
}

/* Navigation Bar */

#menu {
	list-style:none;
	width:940px;
	margin:30px auto 0px auto;
	height:43px;
	padding:0px 20px 0px 20px;

	/* Rounded Corners */
	
	-moz-border-radius: 10px;
	-webkit-border-radius: 10px;
	border-radius: 10px;

	/* Background color and gradients */
	
	background: #014464;
	background: -moz-linear-gradient(top, #0272a7, #013953);
	background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#0272a7), to(#013953));
	
	/* Borders */
	
	border: 1px solid #002232;

	-moz-box-shadow:inset 0px 0px 1px #edf9ff;
	-webkit-box-shadow:inset 0px 0px 1px #edf9ff;
	box-shadow:inset 0px 0px 1px #edf9ff;
}

#menu li {
	float:left;
	text-align:center;
	position:relative;
	padding: 4px 10px 4px 10px;
	margin-right:30px;
	margin-top:7px;
	border:none;
}

#menu li:hover {
	border: 1px solid #777777;
	padding: 4px 9px 4px 9px;
	
	/* Background color and gradients */
	
	background: #F4F4F4;
	background: -moz-linear-gradient(top, #F4F4F4, #EEEEEE);
	background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#F4F4F4), to(#EEEEEE));
	
	/* Rounded corners */
	
	-moz-border-radius: 5px 5px 0px 0px;
	-webkit-border-radius: 5px 5px 0px 0px;
	border-radius: 5px 5px 0px 0px;
}

#menu li a {
	font-family:Arial, Helvetica, sans-serif;
	font-size:14px; 
	color: #EEEEEE;
	display:block;
	outline:0;
	text-decoration:none;
	text-shadow: 1px 1px 1px #000;
}

#menu li:hover a {
	color:#161616;
	text-shadow: 1px 1px 1px #FFFFFF;
}
#menu li .drop {
	padding-right:21px;
	background:url("img/drop.png") no-repeat right 8px;
}
#menu li:hover .drop {
	background:url("img/drop.png") no-repeat right 7px;
}

/* Drop Down */

.dropdown_1column, 
.dropdown_2columns, 
.dropdown_3columns, 
.dropdown_4columns,
.dropdown_5columns {
	margin:4px auto;
	float:left;
	position:absolute;
	left:-999em; /* Hides the drop down */
	text-align:left;
	padding:10px 5px 10px 5px;
	border:1px solid #777777;
	border-top:none;
	
	/* Gradient background */
	background:#F4F4F4;
	background: -moz-linear-gradient(top, #EEEEEE, #BBBBBB);
	background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#EEEEEE), to(#BBBBBB));

	/* Rounded Corners */
	-moz-border-radius: 0px 5px 5px 5px;
	-webkit-border-radius: 0px 5px 5px 5px;
	border-radius: 0px 5px 5px 5px;
}

.dropdown_1column {width: 140px;}
.dropdown_2columns {width: 280px;}
.dropdown_3columns {width: 420px;}
.dropdown_4columns {width: 560px;}
.dropdown_5columns {width: 700px;}

#menu li:hover .dropdown_1column, 
#menu li:hover .dropdown_2columns, 
#menu li:hover .dropdown_3columns,
#menu li:hover .dropdown_4columns,
#menu li:hover .dropdown_5columns {
	left:-1px;
    top:auto;
}

/* Columns */

.col_1,
.col_2,
.col_3,
.col_4,
.col_5 {
	display:inline;
	float: left;
	position: relative;
	margin-left: 5px;
	margin-right: 5px;
}
.col_1 {width:130px;}
.col_2 {width:270px;}
.col_3 {width:410px;}
.col_4 {width:550px;}
.col_5 {width:690px;}

/* Right alignment */

#menu .menu_right {
	float:right;
	margin-right:0px;
}
#menu li .align_right {
	/* Rounded Corners */
	-moz-border-radius: 5px 0px 5px 5px;
    -webkit-border-radius: 5px 0px 5px 5px;
    border-radius: 5px 0px 5px 5px;
}
#menu li:hover .align_right {
	left:auto;
	right:-1px;
	top:auto;
}

/* Drop Down Content Stylings */

#menu p, #menu h2, #menu h3, #menu ul li {
	font-family:Arial, Helvetica, sans-serif;
	line-height:21px;
	font-size:12px;
	text-align:left;
	text-shadow: 1px 1px 1px #FFFFFF;
}
#menu h2 {
	font-size:21px;
	font-weight:400;
	letter-spacing:-1px;
	margin:7px 0 14px 0;
	padding-bottom:14px;
	border-bottom:1px solid #666666;
}
#menu h3 {
	font-size:14px;
	margin:7px 0 14px 0;
	padding-bottom:7px;
	border-bottom:1px solid #888888;
}
#menu p {
	line-height:18px;
	margin:0 0 10px 0;
}

#menu li:hover div a {
	font-size:12px;
	color:#015b86;
}
#menu li:hover div a:hover {
	color:#029feb;
}
.strong {
	font-weight:bold;
}
.italic {
	font-style:italic;
}
.imgshadow {
	background:#FFFFFF;
	padding:4px;
	border:1px solid #777777;
	margin-top:5px;
	-moz-box-shadow:0px 0px 5px #666666;
	-webkit-box-shadow:0px 0px 5px #666666;
	box-shadow:0px 0px 5px #666666;
}
.img_left { /* Image sticks to the left */
	width:auto;
	float:left;
	margin:5px 15px 5px 5px;
}
#menu li .black_box {
	background-color:#333333;
	color: #eeeeee;
	text-shadow: 1px 1px 1px #000;
	padding:4px 6px 4px 6px;

	/* Rounded Corners */
	-moz-border-radius: 5px;
	-webkit-border-radius: 5px;
	border-radius: 5px;

	/* Shadow */
	-webkit-box-shadow:inset 0 0 3px #000000;
	-moz-box-shadow:inset 0 0 3px #000000;
	box-shadow:inset 0 0 3px #000000;
}
#menu li ul {
	list-style:none;
	padding:0;
	margin:0 0 12px 0;
}
#menu li ul li {
	font-size:12px;
	line-height:24px;
	position:relative;
	text-shadow: 1px 1px 1px #ffffff;
	padding:0;
	margin:0;
	float:none;
	text-align:left;
	width:130px;
}
#menu li ul li:hover {
	background:none;
	border:none;
	padding:0;
	margin:0;
}
#menu li .greybox li {
	background:#F4F4F4;
	border:1px solid #bbbbbb;
	margin:0px 0px 4px 0px;
	padding:4px 6px 4px 6px;
	width:116px;

	/* Rounded Corners */
	-moz-border-radius: 5px;
	-webkit-border-radius: 5px;
	border-radius: 5px;
}
#menu li .greybox li:hover {
	background:#ffffff;
	border:1px solid #aaaaaa;
	padding:4px 6px 4px 6px;
	margin:0px 0px 4px 0px;
}

Interesting and Relevant Links


Conclusion

I hope you’ve enjoyed this tutorial on creating mega menus. Thanks for following along!

Guillaume Marty is Pixelworkshop on Codecanyon
Tags: CSScss3
Note: Want to add some source code? Type <pre><code> before it and </code></pre> after it. Find out more
  • LJ

    Hi,

    I’m trying to implement this in SharePoint 2007 and somehow the drop down is not showing up. Any clues is appreciated

    Thanks
    LJ

  • http://www.darngoodwebdesign.com/ Anya

    I love this drop down — thank you!

    Has anyone been able to use it with images (like a logo) for one of the main nav buttons? That works great for me everywhere except on touch devices, where it’ll work once, but then fail to trigger the drop-down in subsequent attempts from the graphic tab until the page is reloaded (and the background of the graphic tab looks like the li hover state). The text tabs continue to work fine, but if one of them is triggered before the graphic tab, the graphic one will not work until after a reload. So, it will only work once and only if it is the first one triggered.

    Here’s the css for the graphical tab (I modeled it on the code used for the drop.png graphic):

    #menu li .logo {
    padding:0;
    margin:0;
    border: none;
    width: 360px;
    height:35px;
    background:url(“../graphics/logo.gif”) no-repeat;
    }
    #menu li:hover .logo {
    background:url(“../graphics/logo.gif”) no-repeat;
    }

    And here’s the html:


    …etc…

    Any suggestions would be hugely appreciated!

  • http://www.darngoodwebdesign.com/ Anya

    Sorry, somehow the html code didn’t make it — here’s another attempt:

  • http://www.darngoodwebdesign.com/ Anya

    Solved! The .logo class had to be added to the jQuery code that clears the .hide class to close the dropdowns on touch devices. See Kris’ comment from Feb 2011 for details on the jQuery application for touch devices, which is brilliant. Thanks Kris, and thanks Guillaume Marty for the great code and tutorial!

  • lj

    Hi,

    Great Menu,

    I want to try some thing like this: Drop the menu down on the click of the header li not on hover. Then i want the slide down to stay there till user clicks out if the menu.

    Appreciate your feedback and help regarding the matter!!

    Thanks

  • http://tinyurl.com/3u53cxk Fred

    Great stuff, thanks. Do you use lots of Magento themes? My company used a few that did a great deal to help to speed up page page times. It took a very long time to get perfect and function to our needs but now it’s superb. Saved hundreds on hosting it by having it in a cloud vps. Thanks, Fred.

  • http://www.recipesmela.com riaz shah

    very nice menu i have collect this menu for my site

  • http://www.asian-women.biz/tag/humor Humor

    Sooooooo amazing submit, i like some words so much and may i pages and use a number of them on my small weblog? Furthermore, i have e-mailed you relating to can it be easy for us to exchange our links, hope meeting up with you soon.

  • Alex

    Hi,

    I have problem, when I insert mega drop down menu in my wp theme,
    site background disappear when scrolling!

    I tried enything, without sucess…
    I figured that is problem in menu.css on this line:

    .dropdown_5columns {
    left:-999em; /* Hides the drop down ***/

    when delete left or add positive value, backgorund is ok, but menu drop down list show…

    If anybody have a solution, i will be very grateful.
    Here my body code for index.php:

    body {
    text-align: center;
    font: 12px Verdana;
    color: #565656;
    background: url(images/bg.jpg) top repeat-x;
    }

  • Allison

    Hi Everyone,

    I’m having a problem with the dropdown menus hiding behind my Flash object in Google Chrome. Works great in all other browsers.

    I’ve set my z-index of my menu higher and wmode to transparent. Still not working….

    Any help would be appreciated!!!

    • chris

      @Allison try to set your z-index of your menu higher (my menu works with z-index:1000000000)

  • Andy

    Terrific tutorial but how can you make the menu keyboard accessible?

  • kiwidave

    would be nice if there was an animated transition from show to hide, as ive found people move the mouse to fast and the menus disappears .

  • http://www.prestitiinpdapinconvenzione.it/ alby

    Hi, in my site the mega menu disappears below the post …
    how can I do?

  • http://www.shaunmbrown.com/ Shaun

    This is awesome….is there anyway to still make this menu function correctly after removing the nested divs?…Id like to have something like this work with WordPress’ custom menus which do not allow that type of output to my knowledge.

  • http://www.callcentrix.net Carlos

    Beautiful article, however there’s a typo in the #menu li .drop rule, in the background positioning. It seems the word “right” was repeated.

    Just a note because direct copy-pasting may not display the arrows. :)

    In addition, I see the demo code has this .drop class applied to A elements instead of LI elements. Is there any reason for this?

  • http://sinfinitydesign.com Adam

    How does the menu li stay highlighted after you move your mouse down to the mega menu dropdown.

    I have gone over and over it, but can’t see how the menu with the drop down arrow stay highlighted once you are on the dropdown and no longer hovering over the menu li a??

  • rahul

    This is best mega menu I have seen so far. It worked awesome and its clean & smooth. Just one glitch I encounter which has been sort out by setting z-index(dropdown goes behind the content) but that z-index didn’t worked in ie7. Hopefully I will soon overcome it.

    One more thing I am working on is dropdown background as the curve did work on IE. Is there solution for this, please let me know.

    • vickson

      yo rahul,

      Have you found the solution to overcome the z-index of mega menu on IE7? May ways I have tried, still failed… Hope you got the solution and share me~ Thanks.

  • Uwe aus Dortmund

    Greetings from Germany: Great!!!!!!!!

  • Jasper

    Hi!

    Is it possible to add a delay to the meny when hovering over it? I would avoid that the menu opens when the user accidentally moves his/her mouse over the menu.

    Looking forward to some suggestions.

    /Jasper

  • http://arta-intco.com Fereshteh

    I really appreciate your guidance, and the time you spent. It was fantastic! Nice job!

  • http://gabisabobo.com Gung Ngawi

    Error when print page, this very bad. see demo : http://nettuts.s3.amazonaws.com/819_megamenu/demo/index.html Than CTRL+P

  • Phil

    Hey guys,

    This is a fantastic tutorial and has helped me get a better understand of how to apply multi-level horizontal navigation to a website! Thank you for the time to prepare this and provide such detailed descriptions.

    As I’m still learning, I’m trying to figure out a way to amend this to enable the dropdown menus to expand the entire width of the navigation bar itself, instead of confining each menu item to a fixed (smaller) width. But I have failed in my attempts to ensure that no matter which menu item is selected, the dropdown menu is centered within the full width of the navigation bar, and not appearing to overlap across (to the right or left) of the actual website content when I set the width of each dropdown menu to (as in this example) a default width of 940px.

    Any ideas??

  • http://www.pingouincreation.com Xelaxam

    Hi Fantastic tutorial. I works well but i have a problem. I put the menu into an asp page (include technique and just cut and paste) and the background of the menu became transparant and the drop down don’t exist anymore .

    What it’s strange is if i “construct” asp page around the mega menu it works well…

    Any ideas?

  • http://www.properclobber.com/girls_hatley_polkadots_splashboots.html Louise

    REALLY REALLY hope you can help me and that you’re still monitoring your posts… I have successfully adapted your mega drop-down menu, (which is fab by the way). However when I work the code in to a dreamweaver template it’s just not displaying the css style at all. I don’t know where I’m going wrong as it works fine in a regular html document. Can’t understand why it’s not working in a template document… Here is a URL where you can find an example of the menu not working. If you can see any obvious mistakes, (I say obvious because it probably is) please do let me know.

    http://www.properclobber.com/girls_hatley_polkadots_splashboots.html

    Many Thanks in Advance!

    Louise

  • http://www.aiag.org Lisa Walker

    downloaded the demo code and saved the index.html page as index.cfm (coldfusion extension) and for some strange reason, the menu works in html but not cfm.
    Any ideas?
    No changes to your coding from the download were done, just re-saved the index page.

  • Toni

    The web is a better place because of people like you. Thank you!!!

  • Ophelia

    I love this menu. However a good number of our users are still on IE6. I tried testing your demo page on an IE6 test machine and nothing happens when you hover over the menu items or click on them. It doesn’t seem like the HTC file is doing anything…I hate IE6 just as much as the next person but I don’t want to make my menu inaccessible to our users. Thanks!

  • Scott

    Hello,

    This is exactly what I was looking for, so thank you for this! However, I am having a bit of trouble with my “Support” menu line dropping down when others are rolled over. This isn’t happening in all browsers, but I would love to get it working on all browsers. Please check this out and let me know what I did wrong. Thanks

    http://goo.gl/N3wpf – my menu that isn’t working

  • ahmad

    so greattttttttttttttttttttt………….thank u so much

  • http://www.spacerock.com Marian

    This is a wonderful thing – but I can’t get it to work on IE9. The text items don’t show up….I’m using the csshover.htc thing and conditioned it to behave this way if any version of IE is popped up (I don’t write for 6 anymore altough I have to at work but not for my own stuff).

    body {behavior: url(“csshover3.htc”);}

    It’s weird as it works fine in IE7 and 8 but not 9. (Will IE ever be compliant?)

  • plokie

    nice tutorial .Another guy did a css3 drop down menu similar to this one here :
    http://youhack.me/2011/09/18/how-to-build-a-drop-down-menu-enhanced-with-css3/

  • http://theswimmerscircle.com Andy

    Great tutorial!

    For http://theswimmerscircle.com, I cannot understand why the links for the banner ad, the content slider, and the top of the sidebar are breaking from the drop-down. Any thoughts?

  • Nils

    Great tutorial +++, thank you.

    But the dropdown doesn’t work on IE9 (as already reported above). How can we make it compatible ?

    That seems to me to be more of an issue than the IE6 compatibility.

    • Nils

      After some research I found out that the dropdowns DO work in IE9.

      I just had to remove all the :

      filter: progid:DXImageTransform.Microsoft.gradient ()

      lines I used to enable color gradients with IE8. The drawback is now I have no more gradients on IE.
      Seems that for gradients we have to wait for IE10…

  • Vinay

    hello guys

    Any idea how i can make the first link to be on by default? that is the first link will show the drop down content by default….

    thanks

  • http://www.jguiss.com Tutoriaux Webmasters

    Awesome tutorial ! The best one to create menu !

  • anuj

    nice lesson…. Works great

    Thanks Guillaume Marty !!
    . Can i use it in a website ????

  • http://www.reel-world.net steve Parker

    Fantastic looking menu. I’m no programmer, but I can normally “a ref” a url link into an html document, but this doesn’t seem to work here. I tried to add a link to some text in one of the menus, but although it highlight when the cursor runs over it, the link doesn’t work.

  • http://www.reel-world.net steve Parker

    just ignore my previous comment…

  • Frances

    This is one of the best tutorials I’ve ever read. Not only is the menu bar awesome, but the tutorial and images make it so easy to follow. Thanks so much!

  • http://woodlandsolutions.com.au Planka

    Great tutorial. The menu is working a treat and looking a million bucks. Thanks for taking the time to provide such a detailed tutorial.

  • simon

    Hi Guillaume,
    I noticed that you show the submenus with, left: -1px;
    Can you explain this? I have a menu where the border is 3px wide on either side. In order to get the menu to work my left value has to be, left: -3px

    This seems sort of weird to me. Since we are using positioning I thought that the submenu should appear flush left with the top level , even in spite of the border.

    Any thoughts or explanations?

    Thanks for your great work.

    simon

  • http://www.getcliqup.com Sumu

    Thanks a lot for wonderful tutorial and great menu. This is very helpful.

  • Ryan

    Is there any way to add a delay to the hover? Thanks.

  • http://www.nigeriajobsreview.com fatbusybee

    hello, just what i have been looking for. i will try and implement it asap. im no code techie so i hope i will get response in case i messed up everything. beautiful tutorial buddy.

  • http://www.nigeriajobsreview.com fatbusybee

    a quick one though, i know where to add the css code [that will be on my css.stylesheet] but where do i add the html codes? im using a wp theme. i know this might sound silly but i need to know pls

  • Anna

    Nice tutorial, but I missed something: how do I keep the mega menu from appearing when I print? I noticed in the comment links that lot of people have managed to ‘hide’ the menu data from the browser print option. Thanks again for the tutorial.

  • Rajalaxmi

    Hi

    I have a issue with a iframe having a PDF embedded to it. The css dropdown hides behind this iframe. What shall i do to overcome this issue.Thanks . It is a problem only in IE and only with iframes that have a pdf opened in it.

  • http://www.xcellence-it.com/ Xcellence-IT, Web Development Experts

    Hi, Great Menu. I’m currently using it on one of my project. I want to know if someone has implemented hover delay using hoverIntent ?

    If not, any ideas would be welcomed.

    Thanks

  • Meules

    Great thx for this tut!!

    I have only one question. When using the columns the items are going from left to right and then to the next “row”. Is it possible to list the items from top to bottom and then to the next column?

    Anyway many thanks!!

  • Dave

    Problem with this menu in Google Chrome – not a smooth as in other browsers – have to get right on the area to get drop down to work and then there is a lag. Any solution to this????